Class EclipseLinkJPQLGrammar2_5

  • All Implemented Interfaces:
    JPQLGrammar

    public final class EclipseLinkJPQLGrammar2_5
    extends AbstractJPQLGrammar

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

    The BNFs of the additional support are the following:
     from_clause = FROM identification_variable_declaration {, {identification_variable_declaration | collection_member_declaration}}*
                        [hierarchical_query_clause]
                        [asof_clause]
    
     in_expression ::= { in_expression_expression | nested_array_expression } [NOT] IN { ( in_item {, in_item}* ) | (subquery) | ( nested_array_item {, nested_array_item}+ ) | collection_valued_input_parameter }
    
     in_expression_expression ::= { state_field_path_expression | type_discriminator |
                                    single_valued_input_parameter | identification_variable |
                                    scalar_expression }
    
     nested_array_expression ::= ( in_expression_expression {, in_expression_expression}+ )
    
     nested_array_item ::= ( in_item {, in_item}+ )
    
     hierarchical_query_clause ::= [start_with_clause] connectby_clause [order_siblings_by_clause]
    
     start_with_clause ::= START WITH conditional_expression
    
     connectby_clause ::= CONNECT BY { single_valued_object_path_expression | collection_valued_path_expression }
    
     order_siblings_by_clause ::= ORDER SIBLINGS BY orderby_item {, orderby_item}*
    
     asof_clause ::= AS OF { SCN | TIMESTAMP } 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
    Since:
    2.5
    • Field Detail

      • VERSION

        public static final EclipseLinkVersion VERSION
        The EclipseLink version, which is 2.5.
    • Constructor Detail

      • EclipseLinkJPQLGrammar2_5

        public EclipseLinkJPQLGrammar2_5()
        Creates a new EclipseLinkJPQLGrammar2_5.
      • EclipseLinkJPQLGrammar2_5

        public EclipseLinkJPQLGrammar2_5​(AbstractJPQLGrammar jpqlGrammar)
        Creates a new EclipseLinkJPQLGrammar2_5.
        Parameters:
        jpqlGrammar - The JPQLGrammar to extend with the content of this one without instantiating the base JPQLGrammar
    • Method Detail

      • getJPAVersion

        public JPAVersion getJPAVersion()
        Returns the JPAVersion of the Java Persistence supported by this grammar.
        Returns:
        The JPA version supported by this grammar
      • getProvider

        public java.lang.String getProvider()
        Returns the persistence provider name.
        Returns:
        The name of the persistence provider, null should never be returned
      • getProviderVersion

        public java.lang.String getProviderVersion()
        Returns the version of the persistence provider.
        Returns:
        The version of the persistence provider, if one is extending the default JPQL grammar defined in the Java Persistence specification, otherwise returns an empty string
      • initializeBNFs

        protected void initializeBNFs()
        Registers the JPQL query BNFs defining the JPQL grammar.
        Specified by:
        initializeBNFs in class AbstractJPQLGrammar
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object