Class EclipseLinkJPQLGrammar2_1

java.lang.Object
org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar
org.eclipse.persistence.jpa.jpql.parser.EclipseLinkJPQLGrammar2_1
All Implemented Interfaces:
JPQLGrammar

public final class EclipseLinkJPQLGrammar2_1 extends AbstractJPQLGrammar

This JPQLGrammar provides support for parsing JPQL queries defined in JSR-337 - Java Persistence 2.0 and the additional support provided by EclipseLink 2.1.

The BNFs of the additional support are the following:
 join ::= join_spec { join_association_path_expression | join_treat_association_path_expression } [AS] identification_variable

 join_treat_association_path_expression ::= TREAT(join_association_path_expression AS entity_type_literal)

 func_expression ::= FUNC(string_literal {, func_item}*)

 func_item ::= new_value

 between_expression ::= scalar_expression [NOT] BETWEEN scalar_expression AND scalar_expression

 in_expression ::= in_expression_expression [NOT] IN { ( in_item {, in_item}* ) | (subquery) | collection_valued_input_parameter }

 in_expression_expression ::= { state_field_path_expression | type_discriminator |
                                single_valued_input_parameter | identification_variable |
                                scalar_expression }

 in_item ::= literal | single_valued_input_parameter | scalar_expression

 scalar_expression ::= arithmetic_expression |
                       ...

 pattern_value ::= scalar_expression | arithmetic_expression

 escape_character ::= scalar_expression

 functions_returning_numerics ::= LENGTH(scalarExpression) |
                                  LOCATE(scalarExpression, scalarExpression[, scalarExpression]) |
                                  MOD(scalarExpression, scalarExpression) |
                                  SQRT(scalarExpression)
                                  func_expression |
                                  ...

 functions_returning_strings ::= CONCAT(scalar_expression {, scalar_expression }+) |
                                 SUBSTRING(scalar_expression, scalar_expression [, scalar_expression]) |
                                 LOWER(scalar_expression) |
                                 UPPER(scalar_expression) |
                                 func_expression |
                                 ...

 orderby_item ::= state_field_path_expression | result_variable | scalar_expression [ ASC | DESC ]

 groupby_item ::= single_valued_path_expression | identification_variable | scalar_expression

 aggregate_expression ::= { AVG | MAX | MIN | SUM | COUNT } ([DISTINCT] scalar_expression)

Provisional API: This interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

Version:
2.5
Author:
Pascal Filion