Interface QueryRedirector

  • All Superinterfaces:
    java.io.Serializable
    All Known Implementing Classes:
    MethodBaseQueryRedirector

    public interface QueryRedirector
    extends java.io.Serializable

    Purpose: Query redirection allows for a named or parameterized query (or finder) to dynamically determine how the query is to be executed based on the arguments.

    Description: An implementor of this interface can be given to a query to allow the user to have full control over the execution of the query. Redirection can be used to:

    • Dynamically configure the query options based on the arguments (i.e. ordering, query optimization... etc.).
    • Dynamically define the selection criteria based on the arguments.
    • Pass Query By Example objects or Expressions as the arguments.
    • Post process the query results.
    • Perform multiple queries or non-EclipseLink operations.

    Note: If you execute the query on a UnitOfWork, the results register with that UnitOfWork, so any objects you attempt to retrieve with the invoke method must come from the Session Cache.

    See Also:
    MethodBaseQueryRedirector, DatabaseQuery.setRedirector(org.eclipse.persistence.queries.QueryRedirector)
    Author:
    James Sutherland
    Since:
    TOPLink/Java 3.0
    • Method Detail

      • invokeQuery

        java.lang.Object invokeQuery​(DatabaseQuery query,
                                     Record arguments,
                                     Session session)
        REQUIRED: Perform the query. This must execute the query base on the arguments and return a valid result for the query.