|
EclipseLink 2.2.0, build 'v20110202-r8913' 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
public abstract class DatabaseQuery
Purpose: Abstract class for all database query objects. DatabaseQuery is a visible class to the EclipseLink user. Users create an appropriate query by creating an instance of a concrete subclasses of DatabaseQuery.
Responsibilities:
Field Summary | |
---|---|
protected java.util.Collection<org.eclipse.persistence.internal.databaseaccess.Accessor> |
accessors
Connection to use for database access, required for server session connection pooling. |
protected java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> |
argumentFields
PERF: Argument fields are cached in prepare to avoid rebuilding on each execution. |
protected java.util.List<java.lang.String> |
arguments
Arguments can be given and specified to predefined queries to allow reuse. |
protected java.util.List<java.lang.String> |
argumentTypeNames
Used to build a list of argumentTypes by name pre-initialization |
protected java.util.List<java.lang.Class> |
argumentTypes
Needed to differentiate queries with the same name. |
protected java.util.List<java.lang.Object> |
argumentValues
Arguments values can be given and specified to predefined queries to allow reuse. |
static java.lang.String |
BATCH_FETCH_PROPERTY
INTERNAL: Property used for batch fetching in non object queries. |
static int |
CascadeAggregateDelete
|
static int |
CascadeAllParts
|
static int |
CascadeByMapping
|
static int |
CascadeDependentParts
|
protected int |
cascadePolicy
Policy that determines how the query will cascade to its object's parts. |
static int |
CascadePrivateParts
|
protected ClassDescriptor |
descriptor
The descriptor cached on the prepare for object level queries. |
protected boolean |
doNotRedirect
Can be set to true in the case there is a redirector or a default redirector but the user does not want the query redirected. |
protected org.eclipse.persistence.internal.sessions.AbstractSession |
executionSession
Only used after the query is cloned for execution to store the execution session under which the query was executed. |
protected java.lang.Boolean |
flushOnExecute
|
protected java.lang.String |
hintString
Used for adding hints to the query string in oracle |
protected java.lang.Boolean |
isCustomQueryUsed
PERF: Store if this query will use the descriptor custom query. |
protected boolean |
isExecutionClone
PERF: Determines if the query has already been cloned for execution, to avoid duplicate cloning. |
protected boolean |
isNativeConnectionRequired
Allow connection unwrapping to be configured. |
protected boolean |
isPrepared
Queries prepare common stated in themselves. |
protected boolean |
isUserDefined
Internal flag used to bypass user define queries when executing one for custom sql/query support. |
protected java.lang.String |
monitorName
Return the name to use for the query in performance monitoring. |
protected java.lang.String |
name
Queries can be given a name and registered with a descriptor to allow common queries to be reused. |
static int |
NoCascading
|
protected java.lang.String |
parameterDelimiter
Allow the reserved pound char used to delimit bind parameters to be overridden |
protected PartitioningPolicy |
partitioningPolicy
Allow queries to be targeted at specific connection pools. |
protected java.util.Map<java.lang.Object,java.lang.Object> |
properties
Internally used by the mappings as a temporary store. |
protected org.eclipse.persistence.internal.queries.DatabaseQueryMechanism |
queryMechanism
The query mechanism determines the mechanism on how the database will be accessed. |
protected int |
queryTimeout
queryTimeout has three possible settings: DefaultTimeout, NoTimeout, and 1..N This applies to both DatabaseQuery.queryTimeout and DescriptorQueryManager.queryTimeout DatabaseQuery.queryTimeout: - DefaultTimeout: get queryTimeout from DescriptorQueryManager - NoTimeout, 1..N: overrides queryTimeout in DescriptorQueryManager DescriptorQueryManager.queryTimeout: - DefaultTimeout: get queryTimeout from parent DescriptorQueryManager. |
protected QueryRedirector |
redirector
A redirector allows for a queries execution to be the execution of a piece of code. |
protected org.eclipse.persistence.internal.sessions.AbstractSession |
session
Only used after the query is cloned for execution to store the session under which the query was executed. |
protected java.lang.String |
sessionName
Used to override the default session in the session broker. |
protected java.lang.Boolean |
shouldBindAllParameters
Bind all arguments to the SQL statement. |
protected java.lang.Boolean |
shouldCacheStatement
Cache the prepared statement, this requires full parameter binding as well. |
protected boolean |
shouldCloneCall
Used to indicate whether or not the call needs to be cloned. |
protected boolean |
shouldMaintainCache
Flag used for a query to bypass the identitymap and unit of work. |
protected boolean |
shouldPrepare
Allow for the prepare of queries to be turned off, this allow for dynamic non-pre SQL generated queries. |
protected boolean |
shouldRetrieveBypassCache
JPA flags to control the shared cache |
protected boolean |
shouldStoreBypassCache
|
protected boolean |
shouldUseWrapperPolicy
Use the WrapperPolicy for the objects returned by the query |
protected boolean |
shouldValidateUpdateCallCacheUse
Allow additional validation to be performed before using the update call cache |
protected DatabaseMapping |
sourceMapping
Table per class requires multiple query executions. |
protected org.eclipse.persistence.internal.sessions.AbstractRecord |
translationRow
Mappings and the descriptor use parameterized mechanisms that will be translated with the data from the row. |
Constructor Summary | |
---|---|
DatabaseQuery()
PUBLIC: Initialize the state of the query |
Method Summary | |
---|---|
void |
addArgument(java.lang.String argumentName)
PUBLIC: Add the argument named argumentName. |
void |
addArgument(java.lang.String argumentName,
java.lang.Class type)
PUBLIC: Add the argument named argumentName and its class type. |
void |
addArgument(java.lang.String argumentName,
java.lang.String typeAsString)
PUBLIC: Add the argument named argumentName and its class type. |
void |
addArgumentByTypeName(java.lang.String argumentName,
java.lang.String typeAsString)
INTERNAL: Add an argument to the query, but do not resolve the class yet. |
void |
addArgumentValue(java.lang.Object argumentValue)
PUBLIC: Add the argumentValue. |
void |
addArgumentValues(java.util.List theArgumentValues)
PUBLIC: Add the argumentValues to the query. |
void |
addCall(Call call)
PUBLIC: Used to define a store procedure or SQL query. |
void |
addStatement(org.eclipse.persistence.internal.expressions.SQLStatement statement)
PUBLIC: Used to define a statement level query. |
void |
bindAllParameters()
PUBLIC: Bind all arguments to any SQL statement. |
java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> |
buildArgumentFields()
INTERNAL: Build the list of arguments fields from the argument names and types. |
protected void |
buildSelectionCriteria(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: In the case of EJBQL, an expression needs to be generated. |
void |
cacheStatement()
PUBLIC: Cache the prepared statements, this requires full parameter binding as well. |
void |
cascadeAllParts()
PUBLIC: Cascade the query and its properties on the queries object(s) and all objects related to the queries object(s). |
void |
cascadeByMapping()
PUBLIC: Cascade the query and its properties on the queries object(s) and all related objects where the mapping has been set to cascade the merge. |
void |
cascadeOnlyDependentParts()
INTERNAL: Used by unit of work, only cascades constraint dependencies. |
void |
cascadePrivateParts()
PUBLIC: Cascade the query and its properties on the queries object(s) and all privately owned objects related to the queries object(s). |
void |
checkDescriptor(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Ensure that the descriptor has been set. |
java.lang.Object |
checkEarlyReturn(org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: Check to see if this query already knows the return value without performing any further work. |
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. |
void |
checkPrepare(org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: Check to see if this query needs to be prepare and prepare it. |
void |
checkPrepare(org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.sessions.AbstractRecord translationRow,
boolean force)
INTERNAL: Check to see if this query needs to be prepare and prepare it. |
java.lang.Object |
clone()
INTERNAL: Clone the query |
protected void |
clonedQueryExecutionComplete(DatabaseQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL Used to give the subclasses opportunity to copy aspects of the cloned query to the original query. |
void |
convertClassNamesToClasses(java.lang.ClassLoader classLoader)
INTERNAL: Convert all the class-name-based settings in this query to actual class-based settings This method is implemented by subclasses as necessary. |
void |
copyFromQuery(DatabaseQuery query)
INTERNAL: Copy all setting from the query. |
void |
dontBindAllParameters()
PUBLIC: Do not Bind all arguments to any SQL statement. |
void |
dontCacheStatement()
PUBLIC: Don't cache the prepared statements, this requires full parameter binding as well. |
void |
dontCascadeParts()
PUBLIC: Do not cascade the query and its properties on the queries object(s) relationships. |
void |
dontMaintainCache()
PUBLIC: Set for the identity map (cache) to be ignored completely. |
java.lang.Object |
execute(org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: Execute the query. |
abstract java.lang.Object |
executeDatabaseQuery()
INTERNAL: Execute the query |
java.lang.Object |
executeInUnitOfWork(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: Override query execution where Session is a UnitOfWork. |
java.lang.Object |
extractRemoteResult(org.eclipse.persistence.internal.sessions.remote.Transporter transporter)
INTERNAL: Extract the correct query result from the transporter. |
org.eclipse.persistence.internal.databaseaccess.Accessor |
getAccessor()
INTERNAL: Return the accessor. |
java.util.Collection<org.eclipse.persistence.internal.databaseaccess.Accessor> |
getAccessors()
INTERNAL: Return the accessors. |
java.util.List<java.lang.String> |
getArguments()
INTERNAL: Return the arguments for use with the pre-defined query option |
java.util.List<java.lang.String> |
getArgumentTypeNames()
INTERNAL: Return the argumentTypeNames for use with the pre-defined query option These are used pre-initialization to construct the argumentTypes list. |
java.util.List<java.lang.Class> |
getArgumentTypes()
INTERNAL: Return the argumentTypes for use with the pre-defined query option |
java.util.List<java.lang.Object> |
getArgumentValues()
INTERNAL: Return the argumentValues for use with argumented queries. |
java.util.Map<java.lang.Object,java.lang.Object> |
getBatchObjects()
INTERNAL: Return temporary map of batched objects. |
org.eclipse.persistence.internal.databaseaccess.DatabaseCall |
getCall()
OBSOLETE: Return the call for this query. |
int |
getCascadePolicy()
INTERNAL: Return the cascade policy. |
Call |
getDatasourceCall()
ADVANCED: Return the call for this query. |
java.util.List |
getDatasourceCalls()
ADVANCED: Return the calls for this query. |
protected QueryRedirector |
getDefaultRedirector()
INTERNAL: Returns the specific default redirector for this query type. |
ClassDescriptor |
getDescriptor()
INTERNAL: Return the descriptor assigned with the reference class |
boolean |
getDoNotRedirect()
This method is used in combination with redirected queries. |
java.lang.String |
getEJBQLString()
PUBLIC: Return the EJBQL string of the query. |
org.eclipse.persistence.internal.sessions.AbstractSession |
getExecutionSession()
INTERNAL: Return the execution session. |
java.lang.Boolean |
getFlushOnExecute()
PUBLIC: If executed against a RepeatableWriteUnitOfWork if this attribute is true EclipseLink will write changes to the database before executing the query. |
java.lang.String |
getHintString()
PUBLIC: Return the current database hint string of the query. |
java.lang.String |
getJPQLString()
PUBLIC: Return the JPQL string of the query. |
java.lang.String |
getMonitorName()
INTERNAL: Return the name to use for the query in performance monitoring. |
java.lang.String |
getName()
PUBLIC: Return the name of the query |
java.lang.String |
getParameterDelimiter()
INTERNAL: Return the String used to delimit an SQL parameter. |
char |
getParameterDelimiterChar()
INTERNAL: Return the char used to delimit an SQL parameter. |
PartitioningPolicy |
getPartitioningPolicy()
PUBLIC: Return the query's partitioning policy. |
java.util.Map<java.lang.Object,java.lang.Object> |
getProperties()
INTERNAL: Property support for use by mappings. |
java.lang.Object |
getProperty(java.lang.Object property)
INTERNAL: Property support used by mappings to store temporary stuff in the query. |
org.eclipse.persistence.internal.queries.DatabaseQueryMechanism |
getQueryMechanism()
INTERNAL: Return the mechanism assigned to the query |
int |
getQueryTimeout()
PUBLIC: Return the number of seconds the driver will wait for a Statement to execute to the given number of seconds. |
QueryRedirector |
getRedirector()
PUBLIC: Return the query redirector. |
java.lang.Class |
getReferenceClass()
PUBLIC: Return the domain class associated with this query. |
java.lang.String |
getReferenceClassName()
INTERNAL: return the name of the reference class. |
Expression |
getSelectionCriteria()
PUBLIC: Return the selection criteria of the query. |
org.eclipse.persistence.internal.sessions.AbstractSession |
getSession()
INTERNAL: Return the current session. |
java.lang.String |
getSessionName()
PUBLIC: Return the name of the session that the query should be executed under. |
java.lang.Boolean |
getShouldBindAllParameters()
INTERNAL: Returns the internal tri-state value of shouldBindParameters used far cascading these settings |
DatabaseMapping |
getSourceMapping()
INTERNAL: |
org.eclipse.persistence.internal.expressions.SQLStatement |
getSQLStatement()
PUBLIC: Return the SQL statement of the query. |
java.lang.String |
getSQLString()
ADVANCED: Return the SQL string of the query. |
java.util.List |
getSQLStrings()
ADVANCED: Return the SQL strings of the query. |
java.lang.String |
getTranslatedSQLString(Session session,
Record translationRow)
ADVANCED: This can be used to access a queries translated SQL if they have been prepared, (i.e. query.prepareCall()). |
java.util.List |
getTranslatedSQLStrings(Session session,
Record translationRow)
ADVANCED: This can be used to access a queries translated SQL if they have been prepared, (i.e. query.prepareCall()). |
org.eclipse.persistence.internal.sessions.AbstractRecord |
getTranslationRow()
INTERNAL: Return the row for translation |
boolean |
hasAccessor()
INTERNAL: returns true if the accessor has already been set. |
boolean |
hasArguments()
INTERNAL: Return if any arguments exist in the query. |
boolean |
hasProperties()
INTERNAL: Return if any properties exist in the query. |
boolean |
hasQueryMechanism()
INTERNAL: Check if the mechanism has been set yet, used for lazy init. |
boolean |
hasSessionName()
PUBLIC: Return if a name of the session that the query should be executed under has been specified. |
void |
ignoreBindAllParameters()
PUBLIC: Session's shouldBindAllParameters() defines whether to bind or not (default setting) |
void |
ignoreCacheStatement()
PUBLIC: Session's shouldCacheAllStatements() defines whether to cache or not (default setting) |
boolean |
isCallQuery()
PUBLIC: Return true if this query uses SQL, a stored procedure, or SDK call. |
boolean |
isCascadeOfAggregateDelete()
INTERNAL: Returns true if this query has been created as the result of cascading a delete of an aggregate collection in a UnitOfWork CR 2811 |
java.lang.Boolean |
isCustomQueryUsed()
INTERNAL: PERF: Return if this query will use the descriptor custom query instead of executing itself. |
protected boolean |
isCustomSelectionQuery()
INTERNAL: If the query mechanism is a call query mechanism and there are no arguments on the query then it must be a foreign reference custom selection query. |
boolean |
isDataModifyQuery()
PUBLIC: Return if this is a data modify query. |
boolean |
isDataReadQuery()
PUBLIC: Return if this is a data read query. |
boolean |
isDefaultPropertiesQuery()
INTERNAL: Return true if the query uses default properties. |
boolean |
isDeleteAllQuery()
PUBLIC: Return if this is a delete all query. |
boolean |
isDeleteObjectQuery()
PUBLIC: Return if this is a delete object query. |
boolean |
isDirectReadQuery()
PUBLIC: Return if this is a direct read query. |
boolean |
isExecutionClone()
INTERNAL: PERF: Return if the query is an execution clone. |
boolean |
isExpressionQuery()
PUBLIC: Return true if this query uses an expression query mechanism |
boolean |
isInsertObjectQuery()
PUBLIC: Return true if this is an insert object query. |
boolean |
isJPQLCallQuery()
PUBLIC: Return true if this query uses an JPQL query mechanism . |
boolean |
isModifyAllQuery()
PUBLIC: Return true if this is a modify all query. |
boolean |
isModifyQuery()
PUBLIC: Return true if this is a modify query. |
boolean |
isNativeConnectionRequired()
ADVANCED: Return if the descriptor requires usage of a native (unwrapped) JDBC connection. |
boolean |
isObjectBuildingQuery()
PUBLIC: Return if this is an object building query. |
boolean |
isObjectLevelModifyQuery()
PUBLIC: Return true if this is an object level modify query. |
boolean |
isObjectLevelReadQuery()
PUBLIC: Return true if this is an object level read query. |
boolean |
isPrepared()
INTERNAL: Queries are prepared when they are executed and then do not need to be prepared on subsequent executions. |
boolean |
isReadAllQuery()
PUBLIC: Return true if this is a read all query. |
boolean |
isReadObjectQuery()
PUBLIC: Return true if this is a read object query. |
boolean |
isReadQuery()
PUBLIC: Return true if this is a read query. |
boolean |
isReportQuery()
PUBLIC: Return true if this is a report query. |
boolean |
isSQLCallQuery()
PUBLIC: Return true if this query uses an SQL query mechanism . |
boolean |
isUpdateAllQuery()
PUBLIC: Return true if this is an update all query. |
boolean |
isUpdateObjectQuery()
PUBLIC: Return true if this is an update object query. |
boolean |
isUserDefined()
INTERNAL: Return true if the query is a custom user defined query. |
boolean |
isValueReadQuery()
PUBLIC: Return if this is a value read query. |
boolean |
isWriteObjectQuery()
PUBLIC: Return true if this is a write object query. |
void |
maintainCache()
PUBLIC: Set for the identity map (cache) to be maintained. |
protected void |
prepare()
INTERNAL: This is different from 'prepareForExecution' in that this is called on the original query, and the other is called on the copy of the query. |
void |
prepareCall(Session session,
Record translationRow)
ADVANCED: Pre-generate the call/SQL for the query. |
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. |
protected void |
prepareForRemoteExecution()
|
void |
prepareFromQuery(DatabaseQuery query)
INTERNAL: Prepare the query from the prepared query. |
java.lang.Object |
redirectQuery(QueryRedirector redirector,
DatabaseQuery queryToRedirect,
org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: Use a EclipseLink redirector to redirect this query to a method. |
protected java.lang.Object |
remoteExecute()
|
java.lang.Object |
remoteExecute(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: |
void |
removeProperty(java.lang.Object property)
INTERNAL: Property support used by mappings. |
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 |
resetMonitorName()
INTERNAL: Return the name to use for the query in performance monitoring. |
void |
retrieveBypassCache()
ADVANCED: JPA flag used to control the behavior of the shared cache. |
org.eclipse.persistence.internal.sessions.AbstractRecord |
rowFromArguments(java.util.List argumentValues,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Translate argumentValues into a database row. |
void |
setAccessor(org.eclipse.persistence.internal.databaseaccess.Accessor accessor)
INTERNAL: Set the accessor, the query must always use the same accessor for database access. |
void |
setAccessors(java.util.Collection<org.eclipse.persistence.internal.databaseaccess.Accessor> accessors)
INTERNAL: Set the list of connection accessors to execute the query on. |
void |
setArguments(java.util.List<java.lang.String> arguments)
INTERNAL: Set the arguments for use with the pre-defined query option. |
void |
setArgumentTypeNames(java.util.List<java.lang.String> argumentTypeNames)
INTERNAL: Set the argumentTypes for use with the pre-defined query option |
void |
setArgumentTypes(java.util.List<java.lang.Class> argumentTypes)
INTERNAL: Set the argumentTypes for use with the pre-defined query option |
void |
setArgumentValues(java.util.List<java.lang.Object> theArgumentValues)
INTERNAL: Set the argumentValues for use with argumented queries. |
void |
setBatchObjects(java.util.Map<java.lang.Object,java.lang.Object> batchObjects)
INTERNAL: Set temporary map of batched objects. |
void |
setCall(Call call)
PUBLIC: Used to define a store procedure or SQL query. |
void |
setCascadePolicy(int policyConstant)
INTERNAL: Set the cascade policy. |
void |
setDatasourceCall(Call call)
PUBLIC: Used to define a store procedure or SQL query. |
void |
setDescriptor(ClassDescriptor descriptor)
INTERNAL: Set the descriptor for the query. |
void |
setDoNotRedirect(boolean doNotRedirect)
This method is used in combination with redirected queries. |
void |
setEJBQLString(java.lang.String ejbqlString)
PUBLIC: Set the EJBQL string of the query. |
protected void |
setExecutionSession(org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL: Set the execution session. |
void |
setFlushOnExecute(java.lang.Boolean flushMode)
PUBLIC: If executed against a RepeatableWriteUnitOfWork if this attribute is true EclipseLink will write changes to the database before executing the query. |
void |
setHintString(java.lang.String newHintString)
Used to set a database hint string on the query. |
protected void |
setIsCustomQueryUsed(boolean isCustomQueryUsed)
INTERNAL: PERF: Set if this query will use the descriptor custom query instead of executing itself. |
void |
setIsExecutionClone(boolean isExecutionClone)
INTERNAL: PERF: Set if the query is an execution clone. |
void |
setIsNativeConnectionRequired(boolean isNativeConnectionRequired)
ADVANCED: Set if the descriptor requires usage of a native (unwrapped) JDBC connection. |
void |
setIsPrepared(boolean isPrepared)
INTERNAL: If changes are made to the query that affect the derived SQL or Call parameters the query needs to be prepared again. |
void |
setIsUserDefined(boolean isUserDefined)
INTERNAL: Set if the query is a custom user defined query. |
void |
setJPQLString(java.lang.String jpqlString)
PUBLIC: Set the JPQL string of the query. |
void |
setName(java.lang.String queryName)
PUBLIC: Set the query's name. |
void |
setParameterDelimiter(java.lang.String aParameterDelimiter)
INTERNAL: Set the String char used to delimit an SQL parameter. |
void |
setPartitioningPolicy(PartitioningPolicy partitioningPolicy)
PUBLIC: Set the query's partitioning policy. |
void |
setProperties(java.util.Map<java.lang.Object,java.lang.Object> properties)
INTERNAL: Property support used by mappings. |
void |
setProperty(java.lang.Object property,
java.lang.Object value)
INTERNAL: Property support used by mappings to store temporary stuff. |
protected void |
setQueryMechanism(org.eclipse.persistence.internal.queries.DatabaseQueryMechanism queryMechanism)
Set the query mechanism for the query. |
void |
setQueryTimeout(int queryTimeout)
PUBLIC: Set the number of seconds the driver will wait for a Statement to execute to the given number of seconds. |
void |
setRedirector(QueryRedirector redirector)
PUBLIC: Set the query redirector. |
void |
setSelectionCriteria(Expression expression)
PUBLIC: To any user of this object. |
void |
setSession(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Set the session for the query |
void |
setSessionName(java.lang.String sessionName)
PUBLIC: Set the name of the session that the query should be executed under. |
void |
setShouldBindAllParameters(boolean shouldBindAllParameters)
PUBLIC: Bind all arguments to any SQL statement. |
void |
setShouldBindAllParameters(java.lang.Boolean bindAllParams)
INTERNAL: Sets the internal tri-state value of shouldBindAllParams Used to cascade this value to other queries |
void |
setShouldCacheStatement(boolean shouldCacheStatement)
PUBLIC: Cache the prepared statements, this requires full parameter binding as well. |
void |
setShouldMaintainCache(boolean shouldMaintainCache)
PUBLIC: Set if the identity map (cache) should be used or not. |
void |
setShouldPrepare(boolean shouldPrepare)
PUBLIC: Set if the query should be prepared. |
void |
setShouldRetrieveBypassCache(boolean shouldRetrieveBypassCache)
ADVANCED: JPA flag used to control the behavior of the shared cache. |
void |
setShouldStoreBypassCache(boolean shouldStoreBypassCache)
ADVANCED: JPA flag used to control the behavior of the shared cache. |
void |
setShouldUseWrapperPolicy(boolean shouldUseWrapperPolicy)
ADVANCED: The wrapper policy can be enable on a query. |
void |
setShouldValidateUpdateCallCacheUse(boolean shouldCheckUpdateCallCacheUse)
INTERNAL: Set if additional validation should be performed before the query uses the update call cache. |
void |
setSourceMapping(DatabaseMapping sourceMapping)
INTERNAL: |
void |
setSQLStatement(org.eclipse.persistence.internal.expressions.SQLStatement sqlStatement)
PUBLIC: To any user of this object. |
void |
setSQLString(java.lang.String sqlString)
PUBLIC: To any user of this object. |
void |
setTranslationRow(org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: Set the row for translation |
boolean |
shouldBindAllParameters()
PUBLIC: Bind all arguments to any SQL statement. |
boolean |
shouldCacheStatement()
PUBLIC: Cache the prepared statements, this requires full parameter binding as well. |
boolean |
shouldCascadeAllParts()
PUBLIC: Flag used to determine if all parts should be cascaded |
boolean |
shouldCascadeByMapping()
PUBLIC: Mappings should be checked to determined if the current operation should be cascaded to the objects referenced. |
boolean |
shouldCascadeOnlyDependentParts()
INTERNAL: Flag used for unit of works cascade policy. |
boolean |
shouldCascadeParts()
PUBLIC: Flag used to determine if any parts should be cascaded |
boolean |
shouldCascadePrivateParts()
PUBLIC: Flag used to determine if any private parts should be cascaded |
boolean |
shouldCloneCall()
INTERNAL: Flag used to determine if the call needs to be cloned. |
boolean |
shouldIgnoreBindAllParameters()
PUBLIC: Local shouldBindAllParameters() should be ignored, Session's shouldBindAllParameters() should be used. |
boolean |
shouldIgnoreCacheStatement()
PUBLIC: Local shouldCacheStatement() should be ignored, Session's shouldCacheAllStatements() should be used. |
boolean |
shouldMaintainCache()
PUBLIC: Return if the identity map (cache) should be used or not. |
boolean |
shouldPrepare()
PUBLIC: Return if the query should be prepared. |
boolean |
shouldRetrieveBypassCache()
ADVANCED: JPA flag used to control the behavior of the shared cache. |
boolean |
shouldStoreBypassCache()
ADVANCED: JPA flag used to control the behavior of the shared cache. |
boolean |
shouldUseWrapperPolicy()
ADVANCED: The wrapper policy can be enabled on a query. |
boolean |
shouldValidateUpdateCallCacheUse()
ADVANCED: Return true if additional validation should be performed before the query uses the update call cache, false otherwise. |
void |
storeBypassCache()
ADVANCED: JPA flag used to control the behavior of the shared cache. |
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String BATCH_FETCH_PROPERTY
protected java.lang.String name
protected java.util.List<java.lang.String> arguments
protected java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> argumentFields
protected java.util.List<java.lang.Object> argumentValues
protected java.util.List<java.lang.Class> argumentTypes
protected java.util.List<java.lang.String> argumentTypeNames
protected transient ClassDescriptor descriptor
protected org.eclipse.persistence.internal.queries.DatabaseQueryMechanism queryMechanism
protected QueryRedirector redirector
protected boolean doNotRedirect
protected boolean shouldMaintainCache
protected boolean shouldRetrieveBypassCache
protected boolean shouldStoreBypassCache
protected java.util.Map<java.lang.Object,java.lang.Object> properties
protected transient org.eclipse.persistence.internal.sessions.AbstractSession session
protected transient org.eclipse.persistence.internal.sessions.AbstractSession executionSession
protected transient java.util.Collection<org.eclipse.persistence.internal.databaseaccess.Accessor> accessors
protected org.eclipse.persistence.internal.sessions.AbstractRecord translationRow
protected boolean isUserDefined
protected int cascadePolicy
protected java.lang.String sessionName
protected boolean isPrepared
protected boolean shouldCloneCall
protected boolean shouldPrepare
protected java.lang.Boolean shouldBindAllParameters
protected java.lang.Boolean shouldCacheStatement
protected boolean shouldUseWrapperPolicy
protected DatabaseMapping sourceMapping
protected int queryTimeout
public static final int NoCascading
public static final int CascadePrivateParts
public static final int CascadeAllParts
public static final int CascadeDependentParts
public static final int CascadeAggregateDelete
public static final int CascadeByMapping
protected java.lang.String hintString
protected java.lang.Boolean flushOnExecute
protected boolean isExecutionClone
protected volatile java.lang.Boolean isCustomQueryUsed
protected boolean isNativeConnectionRequired
protected java.lang.String monitorName
protected boolean shouldValidateUpdateCallCacheUse
protected PartitioningPolicy partitioningPolicy
protected java.lang.String parameterDelimiter
Constructor Detail |
---|
public DatabaseQuery()
Method Detail |
---|
public PartitioningPolicy getPartitioningPolicy()
public void setPartitioningPolicy(PartitioningPolicy partitioningPolicy)
public java.lang.String getMonitorName()
public void resetMonitorName()
public void addArgument(java.lang.String argumentName)
public void addArgument(java.lang.String argumentName, java.lang.Class type)
public void addArgument(java.lang.String argumentName, java.lang.String typeAsString)
public void addArgumentByTypeName(java.lang.String argumentName, java.lang.String typeAsString)
public void addArgumentValue(java.lang.Object argumentValue)
public void addArgumentValues(java.util.List theArgumentValues)
public void addCall(Call call)
public void addStatement(org.eclipse.persistence.internal.expressions.SQLStatement statement)
public void bindAllParameters()
protected void buildSelectionCriteria(org.eclipse.persistence.internal.sessions.AbstractSession session)
public void cacheStatement()
public void cascadeAllParts()
public void cascadeByMapping()
public void cascadeOnlyDependentParts()
public void cascadePrivateParts()
public void checkDescriptor(org.eclipse.persistence.internal.sessions.AbstractSession session) throws QueryException
QueryException
public java.lang.Object checkEarlyReturn(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
protected DatabaseQuery checkForCustomQuery(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
public void checkPrepare(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
public void checkPrepare(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow, boolean force)
public java.lang.Object clone()
clone
in class java.lang.Object
protected void clonedQueryExecutionComplete(DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
public void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
classLoader
- public void dontBindAllParameters()
public void dontCacheStatement()
public void dontCascadeParts()
public void dontMaintainCache()
public abstract java.lang.Object executeDatabaseQuery() throws DatabaseException, OptimisticLockException
DatabaseException
- - an error has occurred on the database.
OptimisticLockException
- - an error has occurred using the optimistic lock feature.public java.lang.Object executeInUnitOfWork(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow) throws DatabaseException, OptimisticLockException
If there are objects in the cache return the results of the cache lookup.
unitOfWork
- - the session in which the receiver will be executed.translationRow
- - the arguments
DatabaseException
- - an error has occurred on the database.
OptimisticLockException
- - an error has occurred using the optimistic lock feature.public java.lang.Object execute(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow) throws DatabaseException, OptimisticLockException
session
- - the session in which the receiver will be executed.
DatabaseException
- - an error has occurred on the database.
OptimisticLockException
- - an error has occurred using the optimistic lock feature.public java.lang.Object extractRemoteResult(org.eclipse.persistence.internal.sessions.remote.Transporter transporter)
public org.eclipse.persistence.internal.databaseaccess.Accessor getAccessor()
public java.util.Collection<org.eclipse.persistence.internal.databaseaccess.Accessor> getAccessors()
public java.util.List<java.lang.String> getArguments()
public java.util.List<java.lang.Class> getArgumentTypes()
public java.util.List<java.lang.String> getArgumentTypeNames()
public void setArgumentTypes(java.util.List<java.lang.Class> argumentTypes)
public void setArgumentTypeNames(java.util.List<java.lang.String> argumentTypeNames)
public void setArguments(java.util.List<java.lang.String> arguments)
public java.util.List<java.lang.Object> getArgumentValues()
public void setArgumentValues(java.util.List<java.lang.Object> theArgumentValues)
public org.eclipse.persistence.internal.databaseaccess.DatabaseCall getCall()
getDatasourceCall()
public Call getDatasourceCall()
prepareCall(Session, Record);
public java.util.List getDatasourceCalls()
prepareCall(Session, Record);
public int getCascadePolicy()
public ClassDescriptor getDescriptor()
public java.lang.String getName()
public java.lang.String getParameterDelimiter()
public char getParameterDelimiterChar()
public java.util.Map<java.lang.Object,java.lang.Object> getProperties()
public java.lang.Object getProperty(java.lang.Object property)
public org.eclipse.persistence.internal.queries.DatabaseQueryMechanism getQueryMechanism()
public boolean hasQueryMechanism()
public int getQueryTimeout()
DescriptorQueryManager.getQueryTimeout()
protected QueryRedirector getDefaultRedirector()
public QueryRedirector getRedirector()
QueryRedirector
public java.lang.Class getReferenceClass()
public java.lang.String getReferenceClassName()
public Expression getSelectionCriteria()
public org.eclipse.persistence.internal.sessions.AbstractSession getSession()
public org.eclipse.persistence.internal.sessions.AbstractSession getExecutionSession()
protected void setExecutionSession(org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
public java.lang.String getSessionName()
public org.eclipse.persistence.internal.expressions.SQLStatement getSQLStatement()
public java.lang.String getJPQLString()
public java.lang.String getEJBQLString()
public java.lang.String getHintString()
public java.lang.String getSQLString()
prepareCall(Session, Record)
public java.util.List getSQLStrings()
prepareCall(Session, Record)
public java.lang.Boolean getShouldBindAllParameters()
public DatabaseMapping getSourceMapping()
public java.lang.String getTranslatedSQLString(Session session, Record translationRow)
prepareCall(org.eclipse.persistence.sessions.Session, Record)
public java.util.List getTranslatedSQLStrings(Session session, Record translationRow)
prepareCall(Session, Record)
public org.eclipse.persistence.internal.sessions.AbstractRecord getTranslationRow()
public boolean hasAccessor()
public boolean hasProperties()
public boolean hasArguments()
public boolean hasSessionName()
public void ignoreBindAllParameters()
public void ignoreCacheStatement()
public boolean isCallQuery()
public boolean isCascadeOfAggregateDelete()
public boolean isDataModifyQuery()
public boolean isDataReadQuery()
public boolean isValueReadQuery()
public boolean isDirectReadQuery()
public boolean isDeleteAllQuery()
public boolean isDeleteObjectQuery()
public boolean isExpressionQuery()
public boolean isModifyAllQuery()
public boolean isModifyQuery()
public boolean isUpdateAllQuery()
public boolean isUpdateObjectQuery()
public java.lang.Boolean getFlushOnExecute()
public boolean isInsertObjectQuery()
public boolean isObjectLevelModifyQuery()
public boolean isObjectLevelReadQuery()
public boolean isObjectBuildingQuery()
public boolean isPrepared()
public boolean isReadAllQuery()
public boolean isReadObjectQuery()
public boolean isReadQuery()
public boolean isReportQuery()
public boolean isSQLCallQuery()
public boolean isJPQLCallQuery()
public boolean isUserDefined()
public boolean isDefaultPropertiesQuery()
public boolean isWriteObjectQuery()
public void maintainCache()
protected void prepare() throws QueryException
QueryException
public void copyFromQuery(DatabaseQuery query)
public void prepareFromQuery(DatabaseQuery query)
public void prepareCall(Session session, Record translationRow) throws QueryException
QueryException
getCall()
,
getSQLString()
,
getTranslatedSQLString(org.eclipse.persistence.sessions.Session,
Record)
protected void prepareCustomQuery(DatabaseQuery customQuery)
public void prepareForExecution() throws QueryException
QueryException
protected void prepareForRemoteExecution()
public java.lang.Object redirectQuery(QueryRedirector redirector, DatabaseQuery queryToRedirect, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
protected java.lang.Object remoteExecute()
public java.lang.Object remoteExecute(org.eclipse.persistence.internal.sessions.AbstractSession session)
public void removeProperty(java.lang.Object property)
public java.util.Map replaceValueHoldersIn(java.lang.Object object, org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)
public void retrieveBypassCache()
public java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> buildArgumentFields()
public org.eclipse.persistence.internal.sessions.AbstractRecord rowFromArguments(java.util.List argumentValues, org.eclipse.persistence.internal.sessions.AbstractSession session) throws QueryException
QueryException
public void setAccessors(java.util.Collection<org.eclipse.persistence.internal.databaseaccess.Accessor> accessors)
public void setAccessor(org.eclipse.persistence.internal.databaseaccess.Accessor accessor)
public void setDatasourceCall(Call call)
public void setCall(Call call)
public void setCascadePolicy(int policyConstant)
public void setDescriptor(ClassDescriptor descriptor)
public void setJPQLString(java.lang.String jpqlString)
public void setEJBQLString(java.lang.String ejbqlString)
public void setFlushOnExecute(java.lang.Boolean flushMode)
public void setHintString(java.lang.String newHintString)
Example:
readAllQuery.setHintString("/*+ index(scott.emp ix_emp) * /");would result in SQL like:
select /*+ index(scott.emp ix_emp) * / from scott.emp emp_alias
This method will cause a query to re-prepare if it has already been executed.
newHintString
- the hint string to be added into the SQL call.public void setIsPrepared(boolean isPrepared)
Automatically called internally.
public boolean isExecutionClone()
public void setIsExecutionClone(boolean isExecutionClone)
public java.lang.Boolean isCustomQueryUsed()
protected boolean isCustomSelectionQuery()
protected void setIsCustomQueryUsed(boolean isCustomQueryUsed)
public void setIsUserDefined(boolean isUserDefined)
public void setName(java.lang.String queryName)
public void setParameterDelimiter(java.lang.String aParameterDelimiter)
public void setProperties(java.util.Map<java.lang.Object,java.lang.Object> properties)
public void setProperty(java.lang.Object property, java.lang.Object value)
protected void setQueryMechanism(org.eclipse.persistence.internal.queries.DatabaseQueryMechanism queryMechanism)
public void setQueryTimeout(int queryTimeout)
DescriptorQueryManager.setQueryTimeout(int)
public void setRedirector(QueryRedirector redirector)
QueryRedirector
public void setSelectionCriteria(Expression expression)
public void setSession(org.eclipse.persistence.internal.sessions.AbstractSession session)
public void setSessionName(java.lang.String sessionName)
public void setShouldBindAllParameters(boolean shouldBindAllParameters)
public void setShouldBindAllParameters(java.lang.Boolean bindAllParams)
public void setShouldCacheStatement(boolean shouldCacheStatement)
public void setShouldMaintainCache(boolean shouldMaintainCache)
public void setShouldPrepare(boolean shouldPrepare)
These queries include:
public void setShouldRetrieveBypassCache(boolean shouldRetrieveBypassCache)
public void setShouldStoreBypassCache(boolean shouldStoreBypassCache)
public void setShouldValidateUpdateCallCacheUse(boolean shouldCheckUpdateCallCacheUse)
public void setShouldUseWrapperPolicy(boolean shouldUseWrapperPolicy)
public void setSourceMapping(DatabaseMapping sourceMapping)
public void setSQLStatement(org.eclipse.persistence.internal.expressions.SQLStatement sqlStatement)
public void setSQLString(java.lang.String sqlString)
public void setTranslationRow(org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
public boolean shouldBindAllParameters()
public boolean shouldCacheStatement()
public boolean shouldCascadeAllParts()
public boolean shouldCascadeByMapping()
public boolean shouldCascadeOnlyDependentParts()
public boolean shouldCascadeParts()
public boolean shouldCascadePrivateParts()
public boolean shouldCloneCall()
public boolean shouldIgnoreBindAllParameters()
public boolean shouldIgnoreCacheStatement()
public boolean shouldMaintainCache()
public boolean shouldPrepare()
These queries include:
public boolean shouldRetrieveBypassCache()
public boolean shouldStoreBypassCache()
public boolean shouldUseWrapperPolicy()
public boolean shouldValidateUpdateCallCacheUse()
public void storeBypassCache()
public java.lang.String toString()
toString
in class java.lang.Object
public void setIsNativeConnectionRequired(boolean isNativeConnectionRequired)
public boolean isNativeConnectionRequired()
public boolean getDoNotRedirect()
public void setDoNotRedirect(boolean doNotRedirect)
public java.util.Map<java.lang.Object,java.lang.Object> getBatchObjects()
public void setBatchObjects(java.util.Map<java.lang.Object,java.lang.Object> batchObjects)
|
EclipseLink 2.2.0, build 'v20110202-r8913' API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |