public interface JPAQueryBuilder
By default, EclipseLink uses ANTLRQueryBuilder
for parsing a query
and converting it into a DatabaseQuery
.
Third-parties can implement this interface and provide a different JPQL
parsing system if required. The JPAQueryBuilder
implementing class
can be registered via a persistence unit property and the implementation
class must have a public, zero-arg constructor.
Modifier and Type | Method and Description |
---|---|
DatabaseQuery |
buildQuery(java.lang.CharSequence jpqlQuery,
org.eclipse.persistence.internal.sessions.AbstractSession session)
Creates a fully initialized
DatabaseQuery by parsing the given
JPQL query. |
Expression |
buildSelectionCriteria(java.lang.String entityName,
java.lang.String selectionCriteria,
org.eclipse.persistence.internal.sessions.AbstractSession session)
Creates a new
Expression that represents the given selection
criteria. |
void |
populateQuery(java.lang.CharSequence jpqlQuery,
DatabaseQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession session)
Populates the given
DatabaseQuery by parsing the given JPQL
query. |
void |
setValidationLevel(java.lang.String level)
Allow the parser validation level to be set.
|
void setValidationLevel(java.lang.String level)
level
- The validation levels are defined in ParserValidationTypeDatabaseQuery buildQuery(java.lang.CharSequence jpqlQuery, org.eclipse.persistence.internal.sessions.AbstractSession session)
DatabaseQuery
by parsing the given
JPQL query.jpqlQuery
- A non-null
string representation of the query to
parse and to convert into a DatabaseQuery
session
- The EclipseLink AbstractSession
that this query will
execute againstDatabaseQuery
Expression buildSelectionCriteria(java.lang.String entityName, java.lang.String selectionCriteria, org.eclipse.persistence.internal.sessions.AbstractSession session)
Expression
that represents the given selection
criteria.entityName
- The name of the entity for which a criteria is createdselectionCriteria
- The string representation of a conditional expression to parsesession
- The EclipseLink AbstractSession
that this query will
execute againstExpression
void populateQuery(java.lang.CharSequence jpqlQuery, DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
DatabaseQuery
by parsing the given JPQL
query.jpqlQuery
- A non-null
string representation of the query to
parse and to convert into a DatabaseQuery
query
- The query to populate with the derived JPQL querysession
- The EclipseLink AbstractSession
that this query will
execute against