|
EclipseLink 1.2.0, build 'v20091016-r5565' API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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.ReadObjectQuery
public class ReadObjectQuery
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.
Field Summary | |
---|---|
protected java.util.Vector |
selectionKey
Key that can be used in place of a selection criteria. |
protected java.lang.Object |
selectionObject
Object that can be used in place of a selection criteria. |
protected boolean |
shouldLoadResultIntoSelectionObject
Can be used to refresh a specific non-cached instance from the database. |
Fields inherited from class org.eclipse.persistence.queries.ObjectBuildingQuery |
---|
DEFAULT_LOCK_MODE, LOCK, LOCK_NOWAIT, LOCK_RESULT_PROPERTY, lockingClause, NO_LOCK, referenceClass, referenceClassName, shouldBuildNullForNullPk, shouldProcessResultsInUnitOfWork, shouldRefreshIdentityMapResult, shouldRefreshRemoteIdentityMapResult, shouldRegisterResultsInUnitOfWork, shouldUseExclusiveConnection, wasDefaultLockMode |
Fields inherited from class org.eclipse.persistence.queries.ReadQuery |
---|
fetchSize, firstResult, maxRows, queryId, queryResultCachingPolicy, temporaryCachedQueryResults |
Constructor Summary | |
---|---|
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. |
Method Summary | |
---|---|
void |
cacheResult(java.lang.Object unwrappedOriginal)
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. |
protected java.lang.Object |
checkEarlyReturnImpl(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. |
protected DatabaseQuery |
checkForCustomQuery(org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: Check to see if a custom query should be used for this query. |
protected java.lang.Object |
conformResult(java.lang.Object result,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
boolean buildDirectlyFromRows)
INTERNAL: Conform the result in the UnitOfWork. |
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. |
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. |
protected QueryRedirector |
getDefaultRedirector()
INTERNAL: Returns the specific default redirector for this query type. |
java.util.Vector |
getSelectionKey()
PUBLIC: The primary key can be specified if used instead of an expression or selection object. |
java.lang.Object |
getSelectionObject()
PUBLIC: Return the selection object of the query. |
protected boolean |
hasNonDefaultFetchGroup()
INTERNAL: Return if the query has an non-default fetch group defined for itself. |
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. |
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 inlucding the translation row. |
void |
prepareForExecution()
INTERNAL: Prepare the receiver for execution in a session. |
protected void |
prePrepare()
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. |
protected java.lang.Object |
remoteExecute()
|
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 |
setSelectionKey(java.util.List selectionKey)
PUBLIC: The primary key can be specified if used instead of an expression or selection object. |
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)
PUBLIC: The primary key can be specified if used instead of an expression or selection object. |
boolean |
shouldCheckCache()
PUBLIC: Return if the cache should be checked. |
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 |
Methods inherited from class org.eclipse.persistence.queries.ObjectBuildingQuery |
---|
convertClassNamesToClasses, getDataResults, isAttributeJoined, isObjectBuildingQuery, registerIndividualResult, setShouldBuildNullForNullPk, setShouldUseExclusiveConnection, shouldBuildNullForNullPk, shouldUseExclusiveConnection |
Methods inherited from class org.eclipse.persistence.queries.ReadQuery |
---|
cacheQueryResults, clearQueryResults, clonedQueryExecutionComplete, doNotCacheQueryResults, getFetchSize, getFirstResult, getMaxRows, getQueryId, getQueryResults, getQueryResults, getQueryResults, getQueryResultsCachePolicy, getTemporaryCachedQueryResults, isReadQuery, remoteExecute, setFetchSize, setFirstResult, setMaxRows, setQueryId, setQueryResults, setQueryResultsCachePolicy, setTemporaryCachedQueryResults, shouldCacheQueryResults |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected transient java.lang.Object selectionObject
protected java.util.Vector selectionKey
protected boolean shouldLoadResultIntoSelectionObject
Constructor Detail |
---|
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)
Method Detail |
---|
public void cacheResult(java.lang.Object unwrappedOriginal)
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
protected java.lang.Object checkEarlyReturnImpl(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
checkEarlyReturnImpl
in class ObjectLevelReadQuery
protected DatabaseQuery checkForCustomQuery(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
checkForCustomQuery
in class DatabaseQuery
protected java.lang.Object conformResult(java.lang.Object result, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow, boolean buildDirectlyFromRows)
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 databaseprotected java.lang.Object executeObjectLevelReadQuery() throws DatabaseException
executeObjectLevelReadQuery
in class ObjectLevelReadQuery
DatabaseException
- - an error has occurred on the databaseprotected java.lang.Object executeObjectLevelReadQueryFromResultSet() throws DatabaseException
executeObjectLevelReadQueryFromResultSet
in class ObjectLevelReadQuery
DatabaseException
- - an error has occurred on the databasepublic java.lang.Object extractRemoteResult(org.eclipse.persistence.internal.sessions.remote.Transporter transporter)
extractRemoteResult
in class DatabaseQuery
protected QueryRedirector getDefaultRedirector()
getDefaultRedirector
in class DatabaseQuery
public java.util.Vector getSelectionKey()
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
protected void prepare() throws QueryException
prepare
in class ObjectLevelReadQuery
QueryException
protected void prepareCustomQuery(DatabaseQuery customQuery)
prepareCustomQuery
in class DatabaseQuery
public void prepareForExecution() throws QueryException
prepareForExecution
in class ReadQuery
QueryException
protected void prePrepare() throws QueryException
prePrepare
in class ObjectLevelReadQuery
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.
protected java.lang.Object remoteExecute()
remoteExecute
in class DatabaseQuery
public java.util.Map replaceValueHoldersIn(java.lang.Object object, org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)
replaceValueHoldersIn
in class DatabaseQuery
public void setSelectionKey(java.util.List selectionKey)
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.
public void setSingletonSelectionKey(java.lang.Object selectionKey)
public boolean shouldCheckCache()
public boolean shouldCheckCacheByExactPrimaryKey()
public boolean shouldCheckCacheByPrimaryKey()
public boolean shouldCheckCacheThenDatabase()
public boolean shouldLoadResultIntoSelectionObject()
protected boolean hasNonDefaultFetchGroup()
|
EclipseLink 1.2.0, build 'v20091016-r5565' API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |