Class ReadAllQuery
- java.lang.Object
-
- org.eclipse.persistence.queries.DatabaseQuery
-
- org.eclipse.persistence.queries.ReadQuery
-
- org.eclipse.persistence.queries.ObjectBuildingQuery
-
- org.eclipse.persistence.queries.ObjectLevelReadQuery
-
- org.eclipse.persistence.queries.ReadAllQuery
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
- Direct Known Subclasses:
ReportQuery
public class ReadAllQuery extends ObjectLevelReadQuery
Purpose: Concrete class for all read queries involving a collection of objects.
Responsibilities: Return a container of the objects generated by the query. Implements the inheritance feature when dealing with abstract descriptors
- See Also:
- Serialized Form
- Author:
- Yvon Lavoie
- Since:
- TOPLink/Java 1.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ReadAllQuery.Direction
Specifies the direction in which the hierarchy is traversed in a hierarchical query.-
Nested classes/interfaces inherited from class org.eclipse.persistence.queries.DatabaseQuery
DatabaseQuery.ParameterType
-
-
Field Summary
Fields Modifier and Type Field Description protected Expression
connectByExpression
protected org.eclipse.persistence.internal.queries.ContainerPolicy
containerPolicy
Used for collection and stream support.protected ReadAllQuery.Direction
direction
protected java.util.List<Expression>
orderSiblingsByExpressions
protected Expression
startWithExpression
Used for Oracle HierarchicalQuery support-
Fields inherited from class org.eclipse.persistence.queries.ObjectLevelReadQuery
additionalFields, aggregateQueries, batchFetchPolicy, cacheUsage, CheckCacheByExactPrimaryKey, CheckCacheByPrimaryKey, CheckCacheOnly, CheckCacheThenDatabase, concreteSubclassCalls, concreteSubclassJoinedMappingIndexes, concreteSubclassQueries, ConformResultsInUnitOfWork, defaultBuilder, distinctState, DoNotCheckCache, DONT_USE_DISTINCT, fetchGroup, fetchGroupName, inMemoryQueryIndirectionPolicy, isCachedExpressionQuery, isPrePrepared, isReadOnly, isReferenceClassLocked, isResultSetAccessOptimizedQuery, isResultSetAccessOptimizedQueryDefault, isResultSetOptimizedQuery, joinedAttributeManager, loadGroup, lockModeType, NONE, nonFetchJoinAttributeExpressions, OPTIMISTIC, OPTIMISTIC_FORCE_INCREMENT, orderByExpressions, partialAttributeExpressions, PESSIMISTIC_, PESSIMISTIC_FORCE_INCREMENT, PESSIMISTIC_READ, PESSIMISTIC_WRITE, READ, shouldExtendPessimisticLockScope, shouldIncludeData, shouldOuterJoinSubclasses, shouldUseDefaultFetchGroup, shouldUseSerializedObjectPolicy, shouldUseSerializedObjectPolicyDefault, UNCOMPUTED_DISTINCT, unionExpressions, USE_DISTINCT, UseDescriptorSetting, usesResultSetAccessOptimization, waitTimeout, waitTimeoutUnit, WRITE
-
Fields inherited from class org.eclipse.persistence.queries.ObjectBuildingQuery
DEFAULT_LOCK_MODE, executionTime, isCacheCheckComplete, LOCK, LOCK_NOWAIT, LOCK_RESULT_PROPERTY, lockingClause, NO_LOCK, prefetchedCacheKeys, printInnerJoinInWhereClause, referenceClass, referenceClassName, requiresDeferredLocks, shouldBuildNullForNullPk, shouldRefreshIdentityMapResult, shouldRefreshRemoteIdentityMapResult, shouldRegisterResultsInUnitOfWork, shouldUseExclusiveConnection, wasDefaultLockMode
-
Fields inherited from class org.eclipse.persistence.queries.ReadQuery
allowQueryResultsCacheValidation, fetchSize, firstResult, maxResults, maxRows, queryId, queryResultCachingPolicy, temporaryCachedQueryResults
-
Fields inherited from class org.eclipse.persistence.queries.DatabaseQuery
accessors, allowNativeSQLQuery, argumentFields, argumentParameterTypes, arguments, argumentTypeNames, argumentTypes, argumentValues, BATCH_FETCH_PROPERTY, CascadeAggregateDelete, CascadeAllParts, CascadeByMapping, CascadeDependentParts, cascadePolicy, CascadePrivateParts, descriptor, descriptors, doNotRedirect, executionSession, flushOnExecute, hintString, isCustomQueryUsed, isExecutionClone, isNativeConnectionRequired, isPrepared, isUserDefined, isUserDefinedSQLCall, monitorName, name, NoCascading, nullableArguments, parameterDelimiter, partitioningPolicy, properties, queryMechanism, queryTimeout, queryTimeoutUnit, redirector, session, sessionName, shouldBindAllParameters, shouldCacheStatement, shouldCloneCall, shouldMaintainCache, shouldPrepare, shouldRetrieveBypassCache, shouldReturnGeneratedKeys, shouldStoreBypassCache, shouldUseWrapperPolicy, shouldValidateUpdateCallCacheUse, sourceMapping, translationRow
-
-
Constructor Summary
Constructors Constructor Description ReadAllQuery()
PUBLIC: Return a new read all query.ReadAllQuery(java.lang.Class classToRead)
PUBLIC: Return a new read all query.ReadAllQuery(java.lang.Class classToRead, Expression selectionCriteria)
PUBLIC: Return a new read all query for the class and the selection criteria.ReadAllQuery(java.lang.Class classToRead, ExpressionBuilder builder)
PUBLIC: Return a new read all query for the class.ReadAllQuery(java.lang.Class classToRead, Call call)
PUBLIC: Return a new read all query.ReadAllQuery(java.lang.Object exampleObject, QueryByExamplePolicy policy)
PUBLIC: Return a query by example query to find all objects matching the attributes of the example object.ReadAllQuery(ExpressionBuilder builder)
PUBLIC: The expression builder should be provide on creation to ensure only one is used.ReadAllQuery(Call call)
PUBLIC: Create a read all query with the database call.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAscendingOrdering(java.lang.String queryKeyName)
PUBLIC: Order the query results by the object's attribute or query key name.void
cacheResult(java.lang.Object unwrappedOriginal)
INTERNAL:protected java.lang.Boolean
checkCustomQueryFlag(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: Check and return custom query flag.protected java.lang.Object
checkEarlyReturnLocal(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: The cache check is done before the prepare as a hit will not require the work to be done.java.lang.Object
clone()
INTERNAL: Creates and returns a copy of this query.protected java.lang.Object
conformResult(java.lang.Object result, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, org.eclipse.persistence.internal.sessions.AbstractRecord arguments, boolean buildDirectlyFromRows)
INTERNAL: Conform the result if specified.boolean
equals(java.lang.Object object)
INTERNAL: Return if the query is equal to the other.java.lang.Object
execute(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord row)
INTERNAL: Execute the query.protected java.lang.Object
executeObjectLevelReadQuery()
INTERNAL: Execute the query.protected java.lang.Object
executeObjectLevelReadQueryFromResultSet()
INTERNAL: Execute the query building the objects directly from the database result-set.java.lang.Object
extractRemoteResult(org.eclipse.persistence.internal.sessions.remote.Transporter transporter)
INTERNAL: Extract the correct query result from the transporter.Expression
getConnectByExpression()
PUBLIC:org.eclipse.persistence.internal.queries.ContainerPolicy
getContainerPolicy()
INTERNAL: Return the query's container policy.protected QueryRedirector
getDefaultRedirector()
INTERNAL: Returns the specific default redirector for this query type.ReadAllQuery.Direction
getDirection()
PUBLIC:java.util.List<Expression>
getOrderSiblingsByExpressions()
PUBLIC:protected ObjectLevelReadQuery
getReadQuery()
INTERNAL: Get custom all read query from query manager.Expression
getStartWithExpression()
PUBLIC:boolean
hasHierarchicalExpressions()
INTERNAL: Verify that we have hierarchical query expressionsboolean
isDefaultPropertiesQuery()
INTERNAL: Return true if the query uses default properties.boolean
isReadAllQuery()
PUBLIC: Return if this is a read all query.protected void
prepare()
INTERNAL: Prepare the receiver for execution in a session.protected void
prepareCustomQuery(DatabaseQuery customQuery)
INTERNAL: Set the properties needed to be cascaded into the custom query.void
prepareForExecution()
INTERNAL: Prepare the receiver for execution in a session.void
prepareFromQuery(DatabaseQuery query)
INTERNAL: Prepare the query from the prepared query.protected void
prepareSelectAllRows()
INTERNAL: Prepare the mechanism.java.lang.Object
registerResultInUnitOfWork(java.lang.Object result, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, org.eclipse.persistence.internal.sessions.AbstractRecord arguments, boolean buildDirectlyFromRows)
INTERNAL: All objects queried via a UnitOfWork get registered here.java.lang.Object
registerResultSetInUnitOfWork(java.sql.ResultSet resultSet, java.util.Vector fields, org.eclipse.persistence.internal.helper.DatabaseField[] fieldsArray, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, org.eclipse.persistence.internal.sessions.AbstractRecord arguments)
INTERNAL: Version of the previous method for ResultSet optimization.java.lang.Object
remoteExecute()
INTERNAL: Execute the query through remote session.java.util.Map
replaceValueHoldersIn(java.lang.Object object, org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)
INTERNAL: replace the value holders in the specified result object(s)void
setContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
PUBLIC: Set the container policy.void
setHierarchicalQueryClause(Expression startWith, Expression connectBy, java.util.List<Expression> orderSiblingsExpressions)
PUBLIC: Set the Hierarchical Query Clause for the queryvoid
setHierarchicalQueryClause(Expression startWith, Expression connectBy, java.util.List<Expression> orderSiblingsExpressions, ReadAllQuery.Direction direction)
PUBLIC: Set the Hierarchical Query Clause for the query, specifying the hierarchy traversal directionboolean
supportsResultSetAccessOptimizationOnExecute()
INTERNAL: Indicates whether the query can use ResultSet optimization.boolean
supportsResultSetAccessOptimizationOnPrepare()
INTERNAL: Indicates whether the query can use ResultSet optimization.void
useCollectionClass(java.lang.Class concreteClass)
PUBLIC: Configure the mapping to use an instance of the specified container class to hold the target objects.void
useCursoredStream()
PUBLIC: Use a CursoredStream as the result collection.void
useCursoredStream(int initialReadSize, int pageSize)
PUBLIC: Use a CursoredStream as the result collection.void
useCursoredStream(int initialReadSize, int pageSize, ValueReadQuery sizeQuery)
PUBLIC: Use a CursoredStream as the result collection.void
useMapClass(java.lang.Class concreteClass, java.lang.String methodName)
PUBLIC: Configure the query to use an instance of the specified container class to hold the result objects.void
useScrollableCursor()
PUBLIC: Use a ScrollableCursor as the result collection.void
useScrollableCursor(int pageSize)
PUBLIC: Use a ScrollableCursor as the result collection.void
useScrollableCursor(ScrollableCursorPolicy policy)
PUBLIC: Use a ScrollableCursor as the result collection.-
Methods inherited from class org.eclipse.persistence.queries.ObjectLevelReadQuery
acquireLocks, acquireLocksWithoutWaiting, addAdditionalField, addAdditionalField, addBatchReadAttribute, addBatchReadAttribute, addDescendingOrdering, addJoinedAttribute, addJoinedAttribute, addJoinSelectionFields, addNonFetchJoin, addNonFetchJoinedAttribute, addNonFetchJoinedAttribute, addOrdering, addPartialAttribute, addPartialAttribute, addSelectionFieldsForJoinedExpression, addUnionExpression, buildObject, changeDescriptor, checkCacheOnly, checkDescriptor, checkEarlyReturn, checkForCustomQuery, checkPrepare, checkPrePrepare, clearIsResultSetOptimizedQuery, clearUsesResultSetAccessOptimization, computeBatchReadAttributes, computeBatchReadMappingQueries, computeNestedQueriesForBatchReadExpressions, conformIndividualResult, conformResultsInUnitOfWork, copyFromQuery, deepClone, dontAcquireLocks, dontCheckCache, dontRefreshIdentityMapResult, dontRefreshRemoteIdentityMapResult, dontUseDistinct, except, executeDatabaseQuery, executeInUnitOfWork, extendPessimisticLockScope, getAdditionalFields, getAggregateQueries, getAggregateQuery, getAsOfClause, getBatchFetchPolicy, getBatchObjects, getBatchReadAttributeExpressions, getCacheUsage, getConcreteSubclassCalls, getConcreteSubclassJoinedMappingIndexes, getConcreteSubclassQueries, getDistinctState, getExampleObject, getExecutionFetchGroup, getExecutionFetchGroup, getExpressionBuilder, getFetchGroup, getFetchGroupName, getFetchGroupNonNestedFieldsSet, getFetchGroupNonNestedFieldsSet, getFetchGroupSelectionFields, getFetchGroupSelectionFields, getInMemoryQueryIndirectionPolicy, getInMemoryQueryIndirectionPolicyState, getJoinedAttributeExpressions, getJoinedAttributeManager, getLoadGroup, getLockingClause, getLockModeType, getNonFetchJoinAttributeExpressions, getOrderByExpressions, getPartialAttributeExpressions, getPartialAttributeSelectionFields, getQueryByExamplePolicy, getReferenceClass, getReferenceClassName, getSelectionFields, getUnionExpressions, getWaitTimeout, getWaitTimeoutUnit, hasAdditionalFields, hasAsOfClause, hasBatchReadAttributes, hasDefaultBuilder, hasExecutionFetchGroup, hasFetchGroup, hashCode, hasJoining, hasNonFetchJoinedAttributeExpressions, hasOrderByExpressions, hasPartialAttributeExpressions, hasUnionExpressions, initializeDefaultBuilder, intersect, isAttributeBatchRead, isCachedExpressionQuery, isClonePessimisticLocked, isDefaultLock, isDistinctComputed, isLockQuery, isLockQuery, isObjectLevelReadQuery, isPartialAttribute, isPrePrepared, isPrimaryKeyQuery, isReadOnly, isReferenceClassLocked, isResultSetAccessOptimizedQuery, isResultSetOptimizedQuery, prepareFetchGroup, prepareForRemoteExecution, prepareFromCachedQuery, prepareOutsideUnitOfWork, prepareQuery, prepareResultSetAccessOptimization, prePrepare, recordCloneForPessimisticLocking, refreshIdentityMapResult, refreshRemoteIdentityMapResult, resetDistinct, setAdditionalFields, setAggregateQuery, setAsOfClause, setBatchFetchPolicy, setBatchFetchSize, setBatchFetchType, setBatchObjects, setBatchReadAttributeExpressions, setCacheUsage, setDescriptor, setDistinctState, setEJBQLString, setExampleObject, setExpressionBuilder, setFetchGroup, setFetchGroupName, setInMemoryQueryIndirectionPolicy, setInMemoryQueryIndirectionPolicyState, setIsPrepared, setIsPreparedKeepingSubclassData, setIsPrePrepared, setIsReadOnly, setIsResultSetAccessOptimizedQuery, setIsResultSetOptimizedQuery, setJoinedAttributeExpressions, setJoinedAttributeManager, setLoadGroup, setLockingClause, setLockMode, setLockModeType, setNonFetchJoinAttributeExpressions, setOrderByExpressions, setPartialAttributeExpressions, setQueryByExamplePolicy, setReferenceClass, setReferenceClassName, setSelectionCriteria, setShouldExtendPessimisticLockScope, setShouldFilterDuplicates, setShouldIncludeData, setShouldOuterJoinSubclasses, setShouldUseDefaultFetchGroup, setShouldUseSerializedObjectPolicy, setUnionExpressions, setWaitTimeout, setWaitTimeoutUnit, shouldCheckCache, shouldCheckCacheOnly, shouldCheckDescriptorForCacheUsage, shouldConformResultsInUnitOfWork, shouldDistinctBeUsed, shouldExtendPessimisticLockScope, shouldFilterDuplicates, shouldIncludeData, shouldOuterJoinSubclasses, shouldReadAllMappings, shouldReadMapping, shouldUseDefaultFetchGroup, shouldUseSerializedObjectPolicy, toString, union, useDistinct, usesResultSetAccessOptimization
-
Methods inherited from class org.eclipse.persistence.queries.ObjectBuildingQuery
clonedQueryExecutionComplete, convertClassNamesToClasses, getDataResults, getExecutionTime, getLockMode, getPrefetchedCacheKeys, getQueryPrimaryKey, isAttributeJoined, isCacheCheckComplete, isObjectBuildingQuery, isRegisteringResults, postRegisterIndividualResult, printInnerJoinInWhereClause, registerIndividualResult, requiresDeferredLocks, setExecutionTime, setPrefetchedCacheKeys, setPrintInnerJoinInWhereClause, setRequiresDeferredLocks, setShouldBuildNullForNullPk, setShouldRefreshIdentityMapResult, setShouldRefreshRemoteIdentityMapResult, setShouldRegisterResultsInUnitOfWork, setShouldUseExclusiveConnection, setWasDefaultLockMode, shouldBuildNullForNullPk, shouldRefreshIdentityMapResult, shouldRefreshRemoteIdentityMapResult, shouldRegisterResultsInUnitOfWork, shouldUseExclusiveConnection, wasDefaultLockMode
-
Methods inherited from class org.eclipse.persistence.queries.ReadQuery
cacheQueryResults, clearQueryResults, doNotCacheQueryResults, getFetchSize, getFirstResult, getInternalMax, getMaxRows, getQueryId, getQueryResults, getQueryResults, getQueryResults, getQueryResultsCachePolicy, getTemporaryCachedQueryResults, isReadQuery, remoteExecute, setAllowQueryResultsCacheValidation, setFetchSize, setFirstResult, setInternalMax, setMaxRows, setQueryId, setQueryResults, setQueryResultsCachePolicy, setTemporaryCachedQueryResults, shouldAllowQueryResultsCacheValidation, shouldCacheQueryResults
-
Methods inherited from class org.eclipse.persistence.queries.DatabaseQuery
addArgument, addArgument, addArgument, addArgument, addArgument, addArgument, addArgumentByTypeName, addArgumentValue, addArgumentValues, addCall, addStatement, bindAllParameters, buildArgumentFields, buildSelectionCriteria, cacheStatement, cascadeAllParts, cascadeByMapping, cascadeOnlyDependentParts, cascadePrivateParts, checkPrepare, dontBindAllParameters, dontCacheStatement, dontCascadeParts, dontMaintainCache, getAccessor, getAccessors, getArgumentParameterTypes, getArguments, getArgumentTypeNames, getArgumentTypes, getArgumentValues, getCall, getCascadePolicy, getDatasourceCall, getDatasourceCalls, getDescriptor, getDescriptors, getDomainClassNounName, getDoNotRedirect, getEJBQLString, getExecutionSession, getFlushOnExecute, getHintString, getJPQLString, getMonitorName, getName, getNullableArguments, getParameterDelimiter, getParameterDelimiterChar, getPartitioningPolicy, getProperties, getProperty, getQueryMechanism, getQueryNounName, getQueryTimeout, getQueryTimeoutUnit, getRedirector, getRedirectorForQuery, getSelectionCriteria, getSensorName, getSession, getSessionName, getShouldBindAllParameters, getSourceMapping, getSQLStatement, getSQLString, getSQLStrings, getTranslatedSQLString, getTranslatedSQLStrings, getTranslationRow, hasAccessor, hasArguments, hasNullableArguments, hasProperties, hasQueryMechanism, hasSessionName, ignoreBindAllParameters, ignoreCacheStatement, isCallQuery, isCascadeOfAggregateDelete, isCustomQueryUsed, isCustomSelectionQuery, isDataModifyQuery, isDataReadQuery, isDeleteAllQuery, isDeleteObjectQuery, isDirectReadQuery, isExecutionClone, isExpressionQuery, isInsertObjectQuery, isJPQLCallQuery, isModifyAllQuery, isModifyQuery, isNativeConnectionRequired, isObjectLevelModifyQuery, isPrepared, isReadObjectQuery, isReportQuery, isResultSetMappingQuery, isSQLCallQuery, isUpdateAllQuery, isUpdateObjectQuery, isUserDefined, isUserDefinedSQLCall, isValueReadQuery, isWriteObjectQuery, maintainCache, prepareCall, prepareInternal, redirectQuery, removeProperty, resetMonitorName, retrieveBypassCache, rowFromArguments, setAccessor, setAccessors, setAllowNativeSQLQuery, setArguments, setArgumentTypeNames, setArgumentTypes, setArgumentValues, setCall, setCascadePolicy, setDatasourceCall, setDoNotRedirect, setExecutionSession, setFlushOnExecute, setHintString, setIsCustomQueryUsed, setIsExecutionClone, setIsNativeConnectionRequired, setIsUserDefined, setIsUserDefinedSQLCall, setJPQLString, setName, setNullableArguments, setParameterDelimiter, setPartitioningPolicy, setProperties, setProperty, setQueryMechanism, setQueryTimeout, setQueryTimeoutUnit, setRedirector, setSession, setSessionName, setShouldBindAllParameters, setShouldBindAllParameters, setShouldCacheStatement, setShouldMaintainCache, setShouldPrepare, setShouldRetrieveBypassCache, setShouldReturnGeneratedKeys, setShouldStoreBypassCache, setShouldUseWrapperPolicy, setShouldValidateUpdateCallCacheUse, setSourceMapping, setSQLStatement, setSQLString, setTranslationRow, shouldAllowNativeSQLQuery, shouldBindAllParameters, shouldCacheStatement, shouldCascadeAllParts, shouldCascadeByMapping, shouldCascadeOnlyDependentParts, shouldCascadeParts, shouldCascadePrivateParts, shouldCloneCall, shouldIgnoreBindAllParameters, shouldIgnoreCacheStatement, shouldMaintainCache, shouldPrepare, shouldPrepare, shouldRetrieveBypassCache, shouldReturnGeneratedKeys, shouldStoreBypassCache, shouldUseWrapperPolicy, shouldValidateUpdateCallCacheUse, storeBypassCache
-
-
-
-
Field Detail
-
containerPolicy
protected org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy
Used for collection and stream support.
-
startWithExpression
protected Expression startWithExpression
Used for Oracle HierarchicalQuery support
-
connectByExpression
protected Expression connectByExpression
-
orderSiblingsByExpressions
protected java.util.List<Expression> orderSiblingsByExpressions
-
direction
protected ReadAllQuery.Direction direction
-
-
Constructor Detail
-
ReadAllQuery
public ReadAllQuery()
PUBLIC: Return a new read all query. A reference class must be specified before execution. It is better to provide the class and expression builder on construction to ensure a single expression builder is used. If no selection criteria is specified this will read all objects of the class from the database.
-
ReadAllQuery
public ReadAllQuery(java.lang.Class classToRead)
PUBLIC: Return a new read all query. It is better to provide the class and expression builder on construction to ensure a single expression builder is used. If no selection criteria is specified this will read all objects of the class from the database.
-
ReadAllQuery
public ReadAllQuery(java.lang.Class classToRead, Expression selectionCriteria)
PUBLIC: Return a new read all query for the class and the selection criteria.
-
ReadAllQuery
public ReadAllQuery(java.lang.Class classToRead, ExpressionBuilder builder)
PUBLIC: Return a new read all query for the class. The expression builder must be used for all associated expressions used with the query.
-
ReadAllQuery
public ReadAllQuery(java.lang.Class classToRead, Call call)
PUBLIC: Return a new read all query. The call represents a database interaction such as SQL, Stored Procedure.
-
ReadAllQuery
public ReadAllQuery(java.lang.Object exampleObject, QueryByExamplePolicy policy)
PUBLIC: Return a query by example query to find all objects matching the attributes of the example object.
-
ReadAllQuery
public ReadAllQuery(ExpressionBuilder builder)
PUBLIC: The expression builder should be provide on creation to ensure only one is used.
-
ReadAllQuery
public ReadAllQuery(Call call)
PUBLIC: Create a read all query with the database call.
-
-
Method Detail
-
addAscendingOrdering
public void addAscendingOrdering(java.lang.String queryKeyName)
PUBLIC: Order the query results by the object's attribute or query key name.
-
cacheResult
public void cacheResult(java.lang.Object unwrappedOriginal)
INTERNAL:This method is called by the object builder when building an original. It will cause the original to be cached in the query results if the query is set to do so.
- Specified by:
cacheResult
in classReadQuery
-
checkEarlyReturnLocal
protected java.lang.Object checkEarlyReturnLocal(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: The cache check is done before the prepare as a hit will not require the work to be done.- Specified by:
checkEarlyReturnLocal
in classObjectLevelReadQuery
-
checkCustomQueryFlag
protected java.lang.Boolean checkCustomQueryFlag(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: Check and return custom query flag. Custom query flag value is initialized when stored value isnull
. Called fromObjectLevelReadQuery.checkForCustomQuery(AbstractSession, AbstractRecord)
to retrieve custom query flag.- Specified by:
checkCustomQueryFlag
in classObjectLevelReadQuery
- Parameters:
session
- Current session (not used).translationRow
- Database record (not used).- Returns:
- Current custom query flag. Value will never be
null
.
-
getReadQuery
protected ObjectLevelReadQuery getReadQuery()
INTERNAL: Get custom all read query from query manager. Called fromObjectLevelReadQuery.checkForCustomQuery(AbstractSession, AbstractRecord)
to retrieve custom read query.- Specified by:
getReadQuery
in classObjectLevelReadQuery
- Returns:
- Custom all read query from query manager.
-
clone
public java.lang.Object clone()
INTERNAL: Creates and returns a copy of this query.- Overrides:
clone
in classObjectLevelReadQuery
- Returns:
- A clone of this instance.
-
conformResult
protected java.lang.Object conformResult(java.lang.Object result, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, org.eclipse.persistence.internal.sessions.AbstractRecord arguments, boolean buildDirectlyFromRows)
INTERNAL: Conform the result if specified.
-
execute
public java.lang.Object execute(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord row) throws DatabaseException
INTERNAL: Execute the query. If there are cached results return those. This must override the super to support result caching.- Overrides:
execute
in classObjectLevelReadQuery
- Parameters:
session
- - the session in which the receiver will be executed.- Returns:
- An object or vector, the result of executing the query.
- Throws:
DatabaseException
- - an error has occurred on the database
-
executeObjectLevelReadQuery
protected java.lang.Object executeObjectLevelReadQuery() throws DatabaseException
INTERNAL: Execute the query. Get the rows and build the object from the rows.- Specified by:
executeObjectLevelReadQuery
in classObjectLevelReadQuery
- Returns:
- java.lang.Object collection of objects resulting from execution of query.
- Throws:
DatabaseException
- - an error has occurred on the database
-
executeObjectLevelReadQueryFromResultSet
protected java.lang.Object executeObjectLevelReadQueryFromResultSet() throws DatabaseException
INTERNAL: Execute the query building the objects directly from the database result-set.- Specified by:
executeObjectLevelReadQueryFromResultSet
in classObjectLevelReadQuery
- Returns:
- an ArrayList of the resulting objects.
- Throws:
DatabaseException
- - an error has occurred on the database
-
extractRemoteResult
public java.lang.Object extractRemoteResult(org.eclipse.persistence.internal.sessions.remote.Transporter transporter)
INTERNAL: Extract the correct query result from the transporter.- Overrides:
extractRemoteResult
in classDatabaseQuery
-
getContainerPolicy
public org.eclipse.persistence.internal.queries.ContainerPolicy getContainerPolicy()
INTERNAL: Return the query's container policy.
-
getDefaultRedirector
protected QueryRedirector getDefaultRedirector()
INTERNAL: Returns the specific default redirector for this query type. There are numerous default query redirectors. See ClassDescriptor for their types.- Overrides:
getDefaultRedirector
in classDatabaseQuery
-
getStartWithExpression
public Expression getStartWithExpression()
PUBLIC:- Returns:
- Expression - the start with expression used to generated the hierarchical query clause in Oracle
-
getConnectByExpression
public Expression getConnectByExpression()
PUBLIC:- Returns:
- Expression - the connect by expression used to generate the hierarchical query caluse in Oracle
-
getOrderSiblingsByExpressions
public java.util.List<Expression> getOrderSiblingsByExpressions()
PUBLIC:- Returns:
- List<Expression> - the ordering expressions used to generate the hierarchical query clause in Oracle
-
getDirection
public ReadAllQuery.Direction getDirection()
PUBLIC:- Returns:
- Direction - the direction in which the hierarchy is traversed
-
hasHierarchicalExpressions
public boolean hasHierarchicalExpressions()
INTERNAL: Verify that we have hierarchical query expressions
-
isDefaultPropertiesQuery
public boolean isDefaultPropertiesQuery()
INTERNAL: Return true if the query uses default properties. This is used to determine if this query is cacheable. i.e. does not use any properties that may conflict with another query with the same JPQL or selection criteria.- Overrides:
isDefaultPropertiesQuery
in classObjectLevelReadQuery
-
equals
public boolean equals(java.lang.Object object)
INTERNAL: Return if the query is equal to the other. This is used to allow dynamic expression query SQL to be cached.- Overrides:
equals
in classObjectLevelReadQuery
-
isReadAllQuery
public boolean isReadAllQuery()
PUBLIC: Return if this is a read all query.- Overrides:
isReadAllQuery
in classDatabaseQuery
-
prepare
protected void prepare() throws QueryException
INTERNAL: Prepare the receiver for execution in a session.- Overrides:
prepare
in classObjectLevelReadQuery
- Throws:
QueryException
-
prepareFromQuery
public void prepareFromQuery(DatabaseQuery query)
INTERNAL: Prepare the query from the prepared query. This allows a dynamic query to prepare itself directly from a prepared query instance. This is used in the JPQL parse cache to allow preparsed queries to be used to prepare dynamic queries. This only copies over properties that are configured through JPQL.- Overrides:
prepareFromQuery
in classObjectLevelReadQuery
-
prepareCustomQuery
protected void prepareCustomQuery(DatabaseQuery customQuery)
INTERNAL: Set the properties needed to be cascaded into the custom query.- Overrides:
prepareCustomQuery
in classObjectBuildingQuery
-
prepareForExecution
public void prepareForExecution() throws QueryException
INTERNAL: Prepare the receiver for execution in a session.- Overrides:
prepareForExecution
in classReadQuery
- Throws:
QueryException
-
prepareSelectAllRows
protected void prepareSelectAllRows()
INTERNAL: Prepare the mechanism.
-
registerResultInUnitOfWork
public java.lang.Object registerResultInUnitOfWork(java.lang.Object result, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, org.eclipse.persistence.internal.sessions.AbstractRecord arguments, boolean buildDirectlyFromRows)
INTERNAL: All objects queried via a UnitOfWork get registered here. If the query went to the database.Involves registering the query result individually and in totality, and hence refreshing / conforming is done here.
- Specified by:
registerResultInUnitOfWork
in classObjectLevelReadQuery
- Parameters:
result
- may be collection (read all) or an object (read one), or even a cursor. If in transaction the shared cache will be bypassed, meaning the result may not be originals from the parent but raw database rows.unitOfWork
- the unitOfWork the result is being registered in.arguments
- the original arguments/parameters passed to the query execution. Used by conformingbuildDirectlyFromRows
- If in transaction must construct a registered result from raw database rows.- Returns:
- the final (conformed, refreshed, wrapped) UnitOfWork query result
-
registerResultSetInUnitOfWork
public java.lang.Object registerResultSetInUnitOfWork(java.sql.ResultSet resultSet, java.util.Vector fields, org.eclipse.persistence.internal.helper.DatabaseField[] fieldsArray, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, org.eclipse.persistence.internal.sessions.AbstractRecord arguments) throws java.sql.SQLException
INTERNAL: Version of the previous method for ResultSet optimization.- Returns:
- the final (conformed, refreshed, wrapped) UnitOfWork query result
- Throws:
java.sql.SQLException
-
remoteExecute
public java.lang.Object remoteExecute()
INTERNAL: Execute the query through remote session.- Overrides:
remoteExecute
in classDatabaseQuery
-
replaceValueHoldersIn
public java.util.Map replaceValueHoldersIn(java.lang.Object object, org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)
INTERNAL: replace the value holders in the specified result object(s)- Overrides:
replaceValueHoldersIn
in classDatabaseQuery
-
setContainerPolicy
public void setContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
PUBLIC: Set the container policy. Used to support different containers (e.g. Collections, Maps).
-
setHierarchicalQueryClause
public void setHierarchicalQueryClause(Expression startWith, Expression connectBy, java.util.List<Expression> orderSiblingsExpressions)
PUBLIC: Set the Hierarchical Query Clause for the queryExample:
Expression startWith = builder.get("id").equal(Integer.valueOf(100)); //can be any expression which identifies a set of employees
Expression connectBy = builder.get("managedEmployees"); //indicated the relationship that the hierarchy is based on, must be self-referential
Vector orderBy = new Vector();
orderBy.addElement(builder.get("startDate"));
readAllQuery.setHierarchicalQueryClause(startWith, connectBy, orderBy);
This query would generate SQL like this:
SELECT * FROM EMPLOYEE START WITH ID=100 CONNECT BY PRIOR ID = MANAGER_ID ORDER SIBLINGS BY START_DATE
- Parameters:
startWith
- Describes the START WITH clause of the query - null if not neededconnectBy
- This should be a query key expression which indicates an attribute who's mapping describes the hierarchyorderSiblingsExpressions
- Contains expressions which indicate fields to be included in the ORDER SIBLINGS BY clause - null if not required
-
setHierarchicalQueryClause
public void setHierarchicalQueryClause(Expression startWith, Expression connectBy, java.util.List<Expression> orderSiblingsExpressions, ReadAllQuery.Direction direction)
PUBLIC: Set the Hierarchical Query Clause for the query, specifying the hierarchy traversal directionExample:
Expression startWith = builder.get("id").equal(Integer.valueOf(100)); //can be any expression which identifies a set of employees
Expression connectBy = builder.get("managedEmployees"); //indicated the relationship that the hierarchy is based on, must be self-referential
Vector orderBy = new Vector();
orderBy.addElement(builder.get("startDate"));
readAllQuery.setHierarchicalQueryClause(startWith, connectBy, orderBy, Direction.CHILD_TO_PARENT);This query would generate SQL like this:
SELECT * FROM EMPLOYEE START WITH ID=100 CONNECT BY ID = PRIOR MANAGER_ID ORDER SIBLINGS BY START_DATE
- Parameters:
startWith
- Describes the START WITH clause of the query - null if not neededconnectBy
- This should be a query key expression which indicates an attribute who's mapping describes the hierarchyorderSiblingsExpressions
- Contains expressions which indicate fields to be included in the ORDER SIBLINGS BY clause - null if not requireddirection
- The direction in which the hierarchy is traversed; if not specified, CHILD_TO_PARENT is used for OneToOne relationships and PARENT_TO_CHILD is used for collections
-
useCollectionClass
public void useCollectionClass(java.lang.Class concreteClass)
PUBLIC: Configure the mapping to use an instance of the specified container class to hold the target objects.jdk1.2.x: The container class must implement (directly or indirectly) the Collection interface.
jdk1.1.x: The container class must be a subclass of Vector.
-
useCursoredStream
public void useCursoredStream()
PUBLIC: Use a CursoredStream as the result collection. The initial read size is 10 and page size is 5.
-
useCursoredStream
public void useCursoredStream(int initialReadSize, int pageSize)
PUBLIC: Use a CursoredStream as the result collection.- Parameters:
initialReadSize
- the initial number of objects to readpageSize
- the number of objects to read when more objects are needed from the database
-
useCursoredStream
public void useCursoredStream(int initialReadSize, int pageSize, ValueReadQuery sizeQuery)
PUBLIC: Use a CursoredStream as the result collection.- Parameters:
initialReadSize
- the initial number of objects to readpageSize
- the number of objects to read when more objects are needed from the databasesizeQuery
- a query that will return the size of the result set; this must be set if an expression is not used (i.e. custom SQL)
-
useMapClass
public void useMapClass(java.lang.Class concreteClass, java.lang.String methodName)
PUBLIC: Configure the query to use an instance of the specified container class to hold the result objects. The key used to index the value in the Map is the value returned by a call to the specified zero-argument method. The method must be implemented by the class (or a superclass) of the value to be inserted into the Map.jdk1.2.x: The container class must implement (directly or indirectly) the Map interface.
jdk1.1.x: The container class must be a subclass of Hashtable.
The referenceClass must set before calling this method.
-
useScrollableCursor
public void useScrollableCursor()
PUBLIC: Use a ScrollableCursor as the result collection.
-
useScrollableCursor
public void useScrollableCursor(int pageSize)
PUBLIC: Use a ScrollableCursor as the result collection.- Parameters:
pageSize
- the number of elements to be read into a the cursor when more elements are needed from the database.
-
useScrollableCursor
public void useScrollableCursor(ScrollableCursorPolicy policy)
PUBLIC: Use a ScrollableCursor as the result collection.- Parameters:
policy
- the scrollable cursor policy allows for additional result set options. Example:ScrollableCursorPolicy policy = new ScrollableCursorPolicy()
policy.setResultSetType(ScrollableCursorPolicy.TYPE_SCROLL_INSENSITIVE);
query.useScrollableCursor(policy);
-
supportsResultSetAccessOptimizationOnPrepare
public boolean supportsResultSetAccessOptimizationOnPrepare()
INTERNAL: Indicates whether the query can use ResultSet optimization. The method is called when the query is prepared, so it should refer only to the attributes that cannot be altered without re-preparing the query. If the query is a clone and the original has been already prepared this method will be called to set a (transient and therefore set to null) usesResultSetOptimization attribute.- Overrides:
supportsResultSetAccessOptimizationOnPrepare
in classObjectLevelReadQuery
-
supportsResultSetAccessOptimizationOnExecute
public boolean supportsResultSetAccessOptimizationOnExecute()
INTERNAL: Indicates whether the query can use ResultSet optimization. Note that the session must be already set. The method is called when the query is executed, so it should refer only to the attributes that can be altered without re-preparing the query.- Overrides:
supportsResultSetAccessOptimizationOnExecute
in classObjectLevelReadQuery
-
-