Interface JPAQueryBuilder

  • All Known Implementing Classes:
    HermesParser

    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.

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

      • setValidationLevel

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

        Expression buildSelectionCriteria​(String entityName,
                                          String selectionCriteria,
                                          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​(CharSequence jpqlQuery,
                           DatabaseQuery query,
                           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