background image

Simplified Query Language Syntax

<< The Java Persistence Query Language | ExampleQueries >>
<< The Java Persistence Query Language | ExampleQueries >>

Simplified Query Language Syntax

State field
: A persistent field of an entity.
Relationship field
: A persistent relationship field of an entity whose type is the abstract
schema type of the related entity.
Simplified Query Language Syntax
This section briefly describes the syntax of the query language so that you can quickly move on
to the next section,
"Example Queries" on page 735
. When you are ready to learn about the
syntax in more detail, see the section
"Full Query Language Syntax" on page 740
.
Select Statements
A select query has six clauses: SELECT, FROM, WHERE, GROUP BY, HAVING, and ORDER BY. The
SELECT
and FROM clauses are required, but the WHERE, GROUP BY, HAVING, and ORDER BY clauses
are optional. Here is the high-level BNF syntax of a query language query:
QL_statement ::= select_clause from_clause
[where_clause][groupby_clause][having_clause][orderby_clause]
The SELECT clause defines the types of the objects or values returned by the query.
The FROM clause defines the scope of the query by declaring one or more identification variables,
which can be referenced in the SELECT and WHERE clauses. An identification variable represents
one of the following elements:
The abstract schema name of an entity
An element of a collection relationship
An element of a single-valued relationship
A member of a collection that is the multiple side of a one-to-many relationship
The WHERE clause is a conditional expression that restricts the objects or values retrieved by the
query. Although it is optional, most queries have a WHERE clause.
The GROUP BY clause groups query results according to a set of properties.
The HAVING clause is used with the GROUP BY clause to further restrict the query results
according to a conditional expression.
The ORDER BY clause sorts the objects or values returned by the query into a specified order.
Update and Delete Statements
Update and delete statements provide bulk operations over sets of entities. They have the
following syntax:
Simplified Query Language Syntax
The Java EE 5 Tutorial · September 2007
734