Interface JPAQueryBuilder

  • All Known Implementing Classes:
    ANTLRQueryBuilder

    public interface JPAQueryBuilder
    This interface defines the entry point for implementing a JPQL query parsing system in EclipseLink.

    By default, EclipseLink uses HermesParser 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.

    Version:
    2.4
    Author:
    John Bracken, Pascal Filion
    Since:
    2.2
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method 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.
    • Method Detail

      • setValidationLevel

        void setValidationLevel​(java.lang.String level)
        Allow the parser validation level to be set.
        Parameters:
        level - The validation levels are defined in ParserValidationType
      • buildQuery

        DatabaseQuery buildQuery​(java.lang.CharSequence jpqlQuery,
                                 org.eclipse.persistence.internal.sessions.AbstractSession session)
        Creates a fully initialized DatabaseQuery by parsing the given JPQL query.
        Parameters:
        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 against
        Returns:
        The fully initialized DatabaseQuery
      • buildSelectionCriteria

        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.
        Parameters:
        entityName - The name of the entity for which a criteria is created
        selectionCriteria - The string representation of a conditional expression to parse
        session - The EclipseLink AbstractSession that this query will execute against
        Returns:
        The fully initialized Expression
      • populateQuery

        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.
        Parameters:
        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 query
        session - The EclipseLink AbstractSession that this query will execute against