public class JPQLSingleStringParser extends Object
SELECT [{result} ]
[FROM {from-clause} ]
[WHERE {filter}]
[GROUP BY {grouping-clause} ]
[HAVING {having-clause} ]
[ORDER BY {ordering-clause}]
e.g SELECT c FROM Customer c INNER JOIN c.orders o WHERE c.status = 1
or
UPDATE {update-clause}
WHERE {filter}
and update-clause is of the form "Entity [[AS] identifier] SET {field = new_value}, ..."
or
DELETE {delete-clause}
WHERE {filter}
and delete-clause is of the form "FROM Entity [[AS] identifier]"
Note that only the {filter} and {having-clause} can strictly contain subqueries in JPQL, hence containing keywords
SELECT c FROM Customer c WHERE NOT EXISTS (SELECT o1 FROM c.orders o1)So the "filter" for the outer query is "NOT EXISTS (SELECT o1 FROM c.orders o1)". Note also that we allow subqueries in {result}, {from}, and {having} clauses as well (vendor extension). If a subquery is contained we extract the subquery and then set it as a variable in the symbol table, and add the subquery separately.
| Constructor and Description |
|---|
JPQLSingleStringParser(Query query,
String queryString)
Constructor for the Single-String parser.
|
Copyright © 2016. All rights reserved.