public class ReadObjectQuery extends ObjectLevelReadQuery
Purpose: Concrete class for all read queries involving a single object.
Responsibilities: Return a single object for the query. Implements the inheritance feature when dealing with abstract descriptors.
DatabaseQuery.ParameterType
CheckCacheByExactPrimaryKey, CheckCacheByPrimaryKey, CheckCacheOnly, CheckCacheThenDatabase, ConformResultsInUnitOfWork, DoNotCheckCache, DONT_USE_DISTINCT, isResultSetAccessOptimizedQueryDefault, NONE, OPTIMISTIC, OPTIMISTIC_FORCE_INCREMENT, PESSIMISTIC_, PESSIMISTIC_FORCE_INCREMENT, PESSIMISTIC_READ, PESSIMISTIC_WRITE, READ, shouldUseSerializedObjectPolicyDefault, UNCOMPUTED_DISTINCT, USE_DISTINCT, UseDescriptorSetting, WRITE
DEFAULT_LOCK_MODE, LOCK, LOCK_NOWAIT, LOCK_RESULT_PROPERTY, NO_LOCK
BATCH_FETCH_PROPERTY, CascadeAggregateDelete, CascadeAllParts, CascadeByMapping, CascadeDependentParts, CascadePrivateParts, NoCascading
Constructor and Description |
---|
ReadObjectQuery()
PUBLIC: Return a new read object query.
|
ReadObjectQuery(Call call)
PUBLIC: Return a new read object query.
|
ReadObjectQuery(java.lang.Class classToRead)
PUBLIC: Return a new read object query.
|
ReadObjectQuery(java.lang.Class classToRead, Call call)
PUBLIC: Return a new read object query.
|
ReadObjectQuery(java.lang.Class classToRead, Expression selectionCriteria)
PUBLIC: Return a new read object query for the class and the selection criteria.
|
ReadObjectQuery(java.lang.Class classToRead, ExpressionBuilder builder)
PUBLIC: Return a new read object query for the class.
|
ReadObjectQuery(ExpressionBuilder builder)
PUBLIC: The expression builder should be provide on creation to ensure only one is used.
|
ReadObjectQuery(java.lang.Object objectToRead)
PUBLIC: Return a query to read the object with the same primary key as the provided object.
|
ReadObjectQuery(java.lang.Object exampleObject, QueryByExamplePolicy policy)
PUBLIC: Return a query by example query to find an object matching the attributes of the example object.
|
Modifier and Type | Method and Description |
---|---|
void |
cacheResult(java.lang.Object object)
INTERNAL: This method is called by the object builder when building an original.
|
void |
checkCacheByExactPrimaryKey()
PUBLIC: The cache will be checked only if the query contains exactly the primary key.
|
void |
checkCacheByPrimaryKey()
PUBLIC: This is the default, the cache will be checked only if the query contains the primary key.
|
void |
checkCacheThenDatabase()
PUBLIC: The cache will be checked completely, then if the object is not found or the query too complex the database will be queried.
|
void |
checkDescriptor(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Ensure that the descriptor has been set.
|
void |
copyFromQuery(DatabaseQuery query)
INTERNAL: Copy all setting from the query.
|
void |
dontLoadResultIntoSelectionObject()
PUBLIC: Do not refesh/load into the selection object, this is the default.
|
java.lang.Object |
execute(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord row)
INTERNAL: Execute the query.
|
java.lang.Object |
extractRemoteResult(org.eclipse.persistence.internal.sessions.remote.Transporter transporter)
INTERNAL: Extract the correct query result from the transporter.
|
java.lang.Object |
getSelectionId()
PUBLIC: Return Id of the object to be selected by the query.
|
java.util.Vector |
getSelectionKey()
Deprecated.
|
java.lang.Object |
getSelectionObject()
PUBLIC: Return the selection object of the query.
|
boolean |
isPrimaryKeyQuery()
INTERNAL: Return if the query is by primary key.
|
boolean |
isReadObjectQuery()
PUBLIC: Return if this is a read object query.
|
void |
loadResultIntoSelectionObject()
PUBLIC: Allow for the selection object of the query to be refreshed or put into the EclipseLink cache.
|
void |
prepareForExecution()
INTERNAL: Prepare the receiver for execution in a session.
|
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.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 |
setSelectionId(java.lang.Object id)
PUBLIC: The Id of the object to be selected by the query.
|
void |
setSelectionKey(java.util.List selectionKey)
Deprecated.
|
void |
setSelectionObject(java.lang.Object selectionObject)
PUBLIC: Used to set the where clause of the query.
|
void |
setShouldLoadResultIntoSelectionObject(boolean shouldLoadResultIntoSelectionObject)
PUBLIC: Allow for the selection object of the query to be refreshed or put into the EclipseLink cache.
|
void |
setSingletonSelectionKey(java.lang.Object selectionKey)
Deprecated.
|
boolean |
shouldCheckCacheByExactPrimaryKey()
PUBLIC: Return if cache should be checked.
|
boolean |
shouldCheckCacheByPrimaryKey()
PUBLIC: Return if cache should be checked.
|
boolean |
shouldCheckCacheThenDatabase()
PUBLIC: Return if cache should be checked.
|
boolean |
shouldLoadResultIntoSelectionObject()
PUBLIC: return true if the result should be loaded into the passed in selection Object
|
acquireLocks, acquireLocksWithoutWaiting, addAdditionalField, addAdditionalField, addBatchReadAttribute, addBatchReadAttribute, addDescendingOrdering, addJoinedAttribute, addJoinedAttribute, addJoinSelectionFields, addNonFetchJoin, addNonFetchJoinedAttribute, addNonFetchJoinedAttribute, addOrdering, addPartialAttribute, addPartialAttribute, addUnionExpression, buildObject, changeDescriptor, checkCacheOnly, checkEarlyReturn, checkPrepare, checkPrePrepare, clearIsResultSetOptimizedQuery, clearUsesResultSetAccessOptimization, clone, computeBatchReadMappingQueries, conformResultsInUnitOfWork, deepClone, dontAcquireLocks, dontCheckCache, dontRefreshIdentityMapResult, dontRefreshRemoteIdentityMapResult, dontUseDistinct, equals, except, executeDatabaseQuery, executeInUnitOfWork, extendPessimisticLockScope, getAdditionalFields, getAsOfClause, getBatchFetchPolicy, getBatchObjects, getBatchReadAttributeExpressions, getCacheUsage, getConcreteSubclassCalls, getConcreteSubclassJoinedMappingIndexes, getDistinctState, getExampleObject, getExecutionFetchGroup, getExecutionFetchGroup, getExpressionBuilder, getFetchGroup, getFetchGroupName, getFetchGroupNonNestedFieldsSet, getFetchGroupNonNestedFieldsSet, getFetchGroupSelectionFields, getInMemoryQueryIndirectionPolicy, getInMemoryQueryIndirectionPolicyState, getJoinedAttributeExpressions, getJoinedAttributeManager, getLoadGroup, getLockingClause, getLockModeType, getNonFetchJoinAttributeExpressions, getOrderByExpressions, getPartialAttributeExpressions, getPartialAttributeSelectionFields, getQueryByExamplePolicy, getReferenceClass, getReferenceClassName, getSelectionFields, getUnionExpressions, getWaitTimeout, hasAdditionalFields, hasAsOfClause, hasBatchReadAttributes, hasDefaultBuilder, hasExecutionFetchGroup, hasFetchGroup, hashCode, hasJoining, hasNonFetchJoinedAttributeExpressions, hasOrderByExpressions, hasPartialAttributeExpressions, hasUnionExpressions, intersect, isAttributeBatchRead, isCachedExpressionQuery, isClonePessimisticLocked, isDefaultLock, isDefaultPropertiesQuery, isDistinctComputed, isLockQuery, isLockQuery, isObjectLevelReadQuery, isPartialAttribute, isReadOnly, isResultSetAccessOptimizedQuery, isResultSetOptimizedQuery, prepareFetchGroup, prepareFromQuery, prepareOutsideUnitOfWork, recordCloneForPessimisticLocking, refreshIdentityMapResult, refreshRemoteIdentityMapResult, resetDistinct, setAdditionalFields, setAsOfClause, setBatchFetchPolicy, setBatchFetchSize, setBatchFetchType, setBatchObjects, setBatchReadAttributeExpressions, setCacheUsage, setDescriptor, setDistinctState, setEJBQLString, setExampleObject, setExpressionBuilder, setFetchGroup, setFetchGroupName, setInMemoryQueryIndirectionPolicy, setInMemoryQueryIndirectionPolicyState, setIsPrepared, 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, shouldCheckCache, shouldCheckCacheOnly, shouldCheckDescriptorForCacheUsage, shouldConformResultsInUnitOfWork, shouldDistinctBeUsed, shouldExtendPessimisticLockScope, shouldFilterDuplicates, shouldIncludeData, shouldOuterJoinSubclasses, shouldReadAllMappings, shouldReadMapping, shouldUseDefaultFetchGroup, shouldUseSerializedObjectPolicy, supportsResultSetAccessOptimizationOnExecute, supportsResultSetAccessOptimizationOnPrepare, toString, union, useDistinct, usesResultSetAccessOptimization
convertClassNamesToClasses, getDataResults, getExecutionTime, getLockMode, getPrefetchedCacheKeys, isAttributeJoined, isCacheCheckComplete, isObjectBuildingQuery, isRegisteringResults, postRegisterIndividualResult, registerIndividualResult, requiresDeferredLocks, setExecutionTime, setPrefetchedCacheKeys, setRequiresDeferredLocks, setShouldBuildNullForNullPk, setShouldRefreshIdentityMapResult, setShouldRefreshRemoteIdentityMapResult, setShouldRegisterResultsInUnitOfWork, setShouldUseExclusiveConnection, shouldBuildNullForNullPk, shouldRefreshIdentityMapResult, shouldRefreshRemoteIdentityMapResult, shouldRegisterResultsInUnitOfWork, shouldUseExclusiveConnection
cacheQueryResults, clearQueryResults, doNotCacheQueryResults, getFetchSize, getFirstResult, getInternalMax, getMaxRows, getQueryId, getQueryResultsCachePolicy, getTemporaryCachedQueryResults, isReadQuery, remoteExecute, setFetchSize, setFirstResult, setInternalMax, setMaxRows, setQueryId, setQueryResultsCachePolicy, setTemporaryCachedQueryResults, shouldCacheQueryResults
addArgument, addArgument, addArgument, addArgument, addArgument, addArgument, addArgumentByTypeName, addArgumentValue, addArgumentValues, addCall, addStatement, bindAllParameters, buildArgumentFields, 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, 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, isDataModifyQuery, isDataReadQuery, isDeleteAllQuery, isDeleteObjectQuery, isDirectReadQuery, isExecutionClone, isExpressionQuery, isInsertObjectQuery, isJPQLCallQuery, isModifyAllQuery, isModifyQuery, isNativeConnectionRequired, isObjectLevelModifyQuery, isPrepared, isReadAllQuery, 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, setFlushOnExecute, setHintString, setIsExecutionClone, setIsNativeConnectionRequired, setIsUserDefined, setIsUserDefinedSQLCall, setJPQLString, setName, setNullableArguments, setParameterDelimiter, setPartitioningPolicy, setProperties, setProperty, setQueryTimeout, setRedirector, setSession, setSessionName, setShouldBindAllParameters, setShouldBindAllParameters, setShouldCacheStatement, setShouldMaintainCache, setShouldPrepare, setShouldRetrieveBypassCache, setShouldStoreBypassCache, setShouldUseWrapperPolicy, setShouldValidateUpdateCallCacheUse, setSourceMapping, setSQLStatement, setSQLString, setTranslationRow, shouldAllowNativeSQLQuery, shouldBindAllParameters, shouldCacheStatement, shouldCascadeAllParts, shouldCascadeByMapping, shouldCascadeOnlyDependentParts, shouldCascadeParts, shouldCascadePrivateParts, shouldCloneCall, shouldIgnoreBindAllParameters, shouldIgnoreCacheStatement, shouldMaintainCache, shouldPrepare, shouldPrepare, shouldRetrieveBypassCache, shouldStoreBypassCache, shouldUseWrapperPolicy, shouldValidateUpdateCallCacheUse, storeBypassCache
public ReadObjectQuery()
public ReadObjectQuery(java.lang.Class classToRead)
ReadObjectQuery(Class, Call)
, ReadObjectQuery(Class, Expression)
, ReadObjectQuery(Class, ExpressionBuilder)
, ReadObjectQuery(ExpressionBuilder)
, ReadObjectQuery(Object)
, or ReadObjectQuery(Object, QueryByExamplePolicy)
.public ReadObjectQuery(java.lang.Class classToRead, Expression selectionCriteria)
public ReadObjectQuery(java.lang.Class classToRead, ExpressionBuilder builder)
public ReadObjectQuery(java.lang.Class classToRead, Call call)
public ReadObjectQuery(Call call)
public ReadObjectQuery(java.lang.Object objectToRead)
public ReadObjectQuery(java.lang.Object exampleObject, QueryByExamplePolicy policy)
public ReadObjectQuery(ExpressionBuilder builder)
public void cacheResult(java.lang.Object object)
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.
cacheResult
in class ReadQuery
public void checkCacheByExactPrimaryKey()
ObjectLevelReadQuery.setCacheUsage(int)
public void checkCacheByPrimaryKey()
ObjectLevelReadQuery.setCacheUsage(int)
public void checkCacheThenDatabase()
ObjectLevelReadQuery.setCacheUsage(int)
public void checkDescriptor(org.eclipse.persistence.internal.sessions.AbstractSession session) throws QueryException
checkDescriptor
in class ObjectLevelReadQuery
QueryException
public void dontLoadResultIntoSelectionObject()
Note: This forces the selection object into the cache a replaces any existing object that may already be there, this is a strict violation of object identity and other objects can still be refering to the old object.
public java.lang.Object execute(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord row) throws DatabaseException
execute
in class ObjectLevelReadQuery
session
- the session in which the receiver will be executed.DatabaseException
- - an error has occurred on the databasepublic java.lang.Object extractRemoteResult(org.eclipse.persistence.internal.sessions.remote.Transporter transporter)
extractRemoteResult
in class DatabaseQuery
@Deprecated public java.util.Vector getSelectionKey()
getSelectionId()
public java.lang.Object getSelectionObject()
public boolean isReadObjectQuery()
isReadObjectQuery
in class DatabaseQuery
public boolean isPrimaryKeyQuery()
isPrimaryKeyQuery
in class ObjectLevelReadQuery
public void loadResultIntoSelectionObject()
Note: This forces the selection object into the cache a replaces any existing object that may already be there, this is a strict violation of object identity and other objects can still be referring to the old object.
public void copyFromQuery(DatabaseQuery query)
copyFromQuery
in class ObjectLevelReadQuery
public void prepareForExecution() throws QueryException
prepareForExecution
in class ReadQuery
QueryException
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)
Involves registering the query result individually and in totality, and hence refreshing / conforming is done here.
registerResultInUnitOfWork
in class ObjectLevelReadQuery
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.public java.util.Map replaceValueHoldersIn(java.lang.Object object, org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)
replaceValueHoldersIn
in class DatabaseQuery
public java.lang.Object getSelectionId()
public void setSelectionId(java.lang.Object id)
CacheId
@Deprecated public void setSelectionKey(java.util.List selectionKey)
setSelectionId(Object)
public void setSelectionObject(java.lang.Object selectionObject)
public void setShouldLoadResultIntoSelectionObject(boolean shouldLoadResultIntoSelectionObject)
Note: This forces the selection object into the cache a replaces any existing object that may already be there, this is a strict violation of object identity and other objects can still be referring to the old object.
@Deprecated public void setSingletonSelectionKey(java.lang.Object selectionKey)
setSelectionId(Object)
public boolean shouldCheckCacheByExactPrimaryKey()
public boolean shouldCheckCacheByPrimaryKey()
public boolean shouldCheckCacheThenDatabase()
public boolean shouldLoadResultIntoSelectionObject()