Class QueryLoader


public class QueryLoader extends BasicLoader
A delegate that implements the Loader part of QueryTranslator.
  • Constructor Details

    • QueryLoader

      public QueryLoader(QueryTranslatorImpl queryTranslator, SessionFactoryImplementor factory, SelectClause selectClause)
      Creates a new Loader implementation.
      Parameters:
      queryTranslator - The query translator that is the delegator.
      factory - The factory from which this loader is being created.
      selectClause - The AST representing the select clause for loading.
  • Method Details

    • getAggregatedSelectExpression

      public AggregatedSelectExpression getAggregatedSelectExpression()
    • validateScrollability

      public final void validateScrollability() throws HibernateException
      Throws:
      HibernateException
    • needsFetchingScroll

      protected boolean needsFetchingScroll()
      Description copied from class: Loader
      Does the result set to be scrolled contain collection fetches?
      Overrides:
      needsFetchingScroll in class Loader
      Returns:
      True if it does, and thus needs the special fetching scroll functionality; false otherwise.
    • getEntityPersisters

      public Loadable[] getEntityPersisters()
      Description copied from class: Loader
      An array of persisters of entity classes contained in each row of results; implemented by all subclasses
      Specified by:
      getEntityPersisters in class Loader
      Returns:
      The entity persisters.
    • getAliases

      public String[] getAliases()
      Description copied from class: Loader
      Get the SQL table aliases of entities whose associations are subselect-loadable, returning null if this loader does not support subselect loading
      Overrides:
      getAliases in class Loader
    • getSqlAliasSuffixes

      public String[] getSqlAliasSuffixes()
    • getSuffixes

      public String[] getSuffixes()
      Specified by:
      getSuffixes in class BasicLoader
    • getCollectionSuffixes

      public String[] getCollectionSuffixes()
      Specified by:
      getCollectionSuffixes in class BasicLoader
    • getQueryIdentifier

      protected String getQueryIdentifier()
      Description copied from class: Loader
      Identifies the query for statistics reporting, if null, no statistics will be reported
      Overrides:
      getQueryIdentifier in class Loader
    • getSQLString

      protected String getSQLString()
      The SQL query string to be called.
      Specified by:
      getSQLString in class Loader
      Returns:
      The sql command this loader should use to get its ResultSet.
    • getCollectionPersisters

      protected CollectionPersister[] getCollectionPersisters()
      An (optional) persister for a collection to be initialized; only collection loaders return a non-null value
      Overrides:
      getCollectionPersisters in class Loader
    • getCollectionOwners

      protected int[] getCollectionOwners()
      Description copied from class: Loader
      Get the index of the entity that owns the collection, or -1 if there is no owner in the query results (ie. in the case of a collection initializer) or no collection.
      Overrides:
      getCollectionOwners in class Loader
    • getEntityEagerPropertyFetches

      protected boolean[] getEntityEagerPropertyFetches()
      Description copied from class: Loader
      An array indicating whether the entities have eager property fetching enabled.
      Overrides:
      getEntityEagerPropertyFetches in class Loader
      Returns:
      Eager property fetching indicators.
    • getOwners

      protected int[] getOwners()
      An array of indexes of the entity that owns a one-to-one association to the entity at the given index (-1 if there is no "owner")
      Overrides:
      getOwners in class Loader
      Returns:
      The owner indicators (see discussion above).
    • getOwnerAssociationTypes

      protected EntityType[] getOwnerAssociationTypes()
      Description copied from class: Loader
      An array of the owner types corresponding to the Loader.getOwners() returns. Indices indicating no owner would be null here.
      Overrides:
      getOwnerAssociationTypes in class Loader
      Returns:
      The types for the owners.
    • isSubselectLoadingEnabled

      protected boolean isSubselectLoadingEnabled()
      Overrides:
      isSubselectLoadingEnabled in class Loader
    • getLockModes

      protected LockMode[] getLockModes(LockOptions lockOptions)
      Description copied from class: Loader
      What lock options does this load entities with?
      Specified by:
      getLockModes in class Loader
      Parameters:
      lockOptions - a collection of lock modes specified dynamically via the Query interface
    • applyLocks

      protected String applyLocks(String sql, LockOptions lockOptions, Dialect dialect) throws QueryException
      Description copied from class: Loader
      Append FOR UPDATE OF clause, if necessary. This empty superclass implementation merely returns its first argument.
      Overrides:
      applyLocks in class Loader
      Throws:
      QueryException
    • applyPostLoadLocks

      protected void applyPostLoadLocks(Object[] row, LockMode[] lockModesArray, SessionImplementor session)
      Overrides:
      applyPostLoadLocks in class Loader
    • upgradeLocks

      protected boolean upgradeLocks()
      Description copied from class: Loader
      Does this query return objects that might be already cached by the session, whose lock mode may need upgrading
      Overrides:
      upgradeLocks in class Loader
    • resolveResultTransformer

      protected ResultTransformer resolveResultTransformer(ResultTransformer resultTransformer)
      Description copied from class: Loader
      Determine the actual ResultTransformer that will be used to transform query results.
      Overrides:
      resolveResultTransformer in class Loader
      Parameters:
      resultTransformer - the specified result transformer
      Returns:
      the actual result transformer
    • getResultColumnOrRow

      protected Object getResultColumnOrRow(Object[] row, ResultTransformer transformer, ResultSet rs, SessionImplementor session) throws SQLException, HibernateException
      Description copied from class: Loader
      Get the actual object that is returned in the user-visible result list. This empty implementation merely returns its first argument. This is overridden by some subclasses.
      Overrides:
      getResultColumnOrRow in class Loader
      Throws:
      SQLException
      HibernateException
    • getResultList

      protected List getResultList(List results, ResultTransformer resultTransformer) throws QueryException
      Overrides:
      getResultList in class Loader
      Throws:
      QueryException
    • list

      public List list(SessionImplementor session, QueryParameters queryParameters) throws HibernateException
      Throws:
      HibernateException
    • iterate

      public Iterator iterate(QueryParameters queryParameters, EventSource session) throws HibernateException
      Throws:
      HibernateException
    • scroll

      public ScrollableResults scroll(QueryParameters queryParameters, SessionImplementor session) throws HibernateException
      Throws:
      HibernateException
    • getNamedParameterLocs

      public int[] getNamedParameterLocs(String name) throws QueryException
      Returns the locations of all occurrences of the named parameter.
      Overrides:
      getNamedParameterLocs in class Loader
      Throws:
      QueryException
    • bindParameterValues

      protected int bindParameterValues(PreparedStatement statement, QueryParameters queryParameters, int startIndex, SessionImplementor session) throws SQLException
      We specifically override this method here, because in general we know much more about the parameters and their appropriate bind positions here then we do in our super because we track them explciitly here through the ParameterSpecification interface.
      Overrides:
      bindParameterValues in class Loader
      Parameters:
      statement - The JDBC prepared statement
      queryParameters - The encapsulation of the parameter values to be bound.
      startIndex - The position from which to start binding parameter values.
      session - The originating session.
      Returns:
      The number of JDBC bind positions actually bound during this method execution.
      Throws:
      SQLException - Indicates problems performing the binding.