Package org.hibernate.loader.criteria
Class CriteriaLoader
- java.lang.Object
-
- org.hibernate.loader.Loader
-
- org.hibernate.loader.BasicLoader
-
- org.hibernate.loader.OuterJoinLoader
-
- org.hibernate.loader.criteria.CriteriaLoader
-
public class CriteriaLoader extends OuterJoinLoader
A Loader for Criteria queries. Note that criteria queries are more like multi-object load()s than like HQL queries.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.hibernate.loader.Loader
Loader.SqlStatementWrapper
-
-
Field Summary
-
Fields inherited from class org.hibernate.loader.OuterJoinLoader
aliases, collectionOwners, collectionPersisters, collectionSuffixes, lockModeArray, ownerAssociationTypes, owners, persisters, sql, suffixes
-
Fields inherited from class org.hibernate.loader.BasicLoader
NO_SUFFIX
-
Fields inherited from class org.hibernate.loader.Loader
DEBUG_ENABLED, LOG, SELECT, SELECT_DISTINCT
-
-
Constructor Summary
Constructors Constructor Description CriteriaLoader(OuterJoinLoadable persister, SessionFactoryImplementor factory, org.hibernate.internal.CriteriaImpl criteria, java.lang.String rootEntityName, LoadQueryInfluencers loadQueryInfluencers)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.String
applyLocks(java.lang.String sql, QueryParameters parameters, Dialect dialect, java.util.List<AfterLoadAction> afterLoadActions)
Append FOR UPDATE OF clause, if necessary.protected boolean
areResultSetRowsTransformedImmediately()
Are rows transformed immediately after being read from the ResultSet?protected LockMode
determineFollowOnLockMode(LockOptions lockOptions)
protected LockMode[]
getLockModes(LockOptions lockOptions)
What lock options does this load entities with?protected java.lang.String
getQueryIdentifier()
Identifies the query for statistics reporting, if null, no statistics will be reportedjava.util.Set
getQuerySpaces()
protected java.lang.Object
getResultColumnOrRow(java.lang.Object[] row, ResultTransformer transformer, java.sql.ResultSet rs, SharedSessionContractImplementor session)
Get the actual object that is returned in the user-visible result list.protected java.util.List
getResultList(java.util.List results, ResultTransformer resultTransformer)
protected java.lang.Object[]
getResultRow(java.lang.Object[] row, java.sql.ResultSet rs, SharedSessionContractImplementor session)
protected java.lang.String[]
getResultRowAliases()
Returns the aliases that corresponding to a result row.protected boolean[]
includeInResultRow()
protected boolean
isSubselectLoadingEnabled()
java.util.List
list(SharedSessionContractImplementor session)
protected ResultTransformer
resolveResultTransformer(ResultTransformer resultTransformer)
Determine the actual ResultTransformer that will be used to transform query results.ScrollableResultsImplementor
scroll(SharedSessionContractImplementor session, ScrollMode scrollMode)
-
Methods inherited from class org.hibernate.loader.OuterJoinLoader
getAliases, getCollectionOwners, getCollectionPersisters, getCollectionSuffixes, getDialect, getEntityPersisters, getLoadQueryInfluencers, getLockOptions, getOwnerAssociationTypes, getOwners, getSQLString, getSuffixes, initFromWalker
-
Methods inherited from class org.hibernate.loader.BasicLoader
generateSuffixes, generateSuffixes, getCollectionAliases, getEntityAliases, postInstantiate
-
Methods inherited from class org.hibernate.loader.Loader
applyPostLoadLocks, autoDiscoverTypes, bindNamedParameters, bindParameterValues, bindPositionalParameters, checkScrollability, doList, doQueryAndInitializeNonLazyCollections, doQueryAndInitializeNonLazyCollections, executeQueryStatement, executeQueryStatement, extractKeysFromResultSet, getCompositeKeyManyToOneTargetIndices, getEntityEagerPropertyFetches, getFactory, getLimitHandler, getNamedParameterLocs, getResultSet, getResultSet, hasSubselectLoadableCollections, isSingleRowLoader, list, loadCollection, loadCollectionBatch, loadCollectionSubselect, loadEntity, loadEntity, loadEntityBatch, loadSequentialRowsForward, loadSequentialRowsReverse, loadSingleRow, needsFetchingScroll, prepareQueryStatement, preprocessSQL, processDistinctKeyword, processResultSet, putResultInQueryCache, scroll, shouldUseFollowOnLocking, toString, upgradeLocks
-
-
-
-
Constructor Detail
-
CriteriaLoader
public CriteriaLoader(OuterJoinLoadable persister, SessionFactoryImplementor factory, org.hibernate.internal.CriteriaImpl criteria, java.lang.String rootEntityName, LoadQueryInfluencers loadQueryInfluencers) throws HibernateException
- Throws:
HibernateException
-
-
Method Detail
-
scroll
public ScrollableResultsImplementor scroll(SharedSessionContractImplementor session, ScrollMode scrollMode) throws HibernateException
- Throws:
HibernateException
-
list
public java.util.List list(SharedSessionContractImplementor session) throws HibernateException
- Throws:
HibernateException
-
getResultRowAliases
protected java.lang.String[] getResultRowAliases()
Description copied from class:Loader
Returns the aliases that corresponding to a result row.- Overrides:
getResultRowAliases
in classLoader
- Returns:
- Returns the aliases that corresponding to a result row.
-
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 classLoader
- Parameters:
resultTransformer
- the specified result transformer- Returns:
- the actual result transformer
-
areResultSetRowsTransformedImmediately
protected boolean areResultSetRowsTransformedImmediately()
Description copied from class:Loader
Are rows transformed immediately after being read from the ResultSet?- Overrides:
areResultSetRowsTransformedImmediately
in classLoader
- Returns:
- true, if getResultColumnOrRow() transforms the results; false, otherwise
-
includeInResultRow
protected boolean[] includeInResultRow()
- Overrides:
includeInResultRow
in classLoader
-
getResultColumnOrRow
protected java.lang.Object getResultColumnOrRow(java.lang.Object[] row, ResultTransformer transformer, java.sql.ResultSet rs, SharedSessionContractImplementor session) throws java.sql.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 classLoader
- Throws:
java.sql.SQLException
HibernateException
-
getResultRow
protected java.lang.Object[] getResultRow(java.lang.Object[] row, java.sql.ResultSet rs, SharedSessionContractImplementor session) throws java.sql.SQLException, HibernateException
- Overrides:
getResultRow
in classLoader
- Throws:
java.sql.SQLException
HibernateException
-
getQuerySpaces
public java.util.Set getQuerySpaces()
-
applyLocks
protected java.lang.String applyLocks(java.lang.String sql, QueryParameters parameters, Dialect dialect, java.util.List<AfterLoadAction> afterLoadActions) 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 classLoader
- Throws:
QueryException
-
determineFollowOnLockMode
protected LockMode determineFollowOnLockMode(LockOptions lockOptions)
- Overrides:
determineFollowOnLockMode
in classLoader
-
getLockModes
protected LockMode[] getLockModes(LockOptions lockOptions)
Description copied from class:Loader
What lock options does this load entities with?- Overrides:
getLockModes
in classOuterJoinLoader
- Parameters:
lockOptions
- a collection of lock options specified dynamically via the Query interface
-
isSubselectLoadingEnabled
protected boolean isSubselectLoadingEnabled()
- Overrides:
isSubselectLoadingEnabled
in classLoader
-
getResultList
protected java.util.List getResultList(java.util.List results, ResultTransformer resultTransformer)
- Overrides:
getResultList
in classLoader
-
getQueryIdentifier
protected java.lang.String getQueryIdentifier()
Description copied from class:Loader
Identifies the query for statistics reporting, if null, no statistics will be reported- Overrides:
getQueryIdentifier
in classLoader
-
-