Package org.eclipse.persistence.queries
Class ReportQuery
- java.lang.Object
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
public class ReportQuery extends ReadAllQuery
Purpose: Query for information about a set of objects instead of the objects themselves. This supports select single attributes, nested attributes, aggregation functions and group bys.Attribute Types:
- addAttribute("directQueryKey") is a short cut method to add an attribute with the same name as its corresponding direct query key.
- addAttribute("attributeName", expBuilder.get("oneToOneMapping").get("directQueryKey")) is the full approach for get values through joined 1:1 relationships.
- addAttribute("attributeName", expBuilder.getField("TABLE.FIELD")) allows the addition of raw values or values which were not mapped in the object model directly (i.e. FK attributes).
- addAttribute("attributeName", null) Leave a place holder (NULL) value in the result (used for included values from other systems or calculated values).
- See Also:
If the values are wanted in the result array then they must be added as attributes. For primary keys which are not mapped directly you can add them as DatabaseFields (see above).
, Serialized Form- Author:
- Doug Clarke
- Since:
- TOPLink/Java 2.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.persistence.queries.ReadAllQuery
ReadAllQuery.Direction
-
Nested classes/interfaces inherited from class org.eclipse.persistence.queries.DatabaseQuery
DatabaseQuery.ParameterType
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
addToConstructorItem
flag to allow items to be added to the last ConstructorReportItemstatic int
FIRST_PRIMARY_KEY
static int
FULL_PRIMARY_KEY
Specifies whether to retrieve primary keys, first primary key, or no primary key.protected java.util.List<Expression>
groupByExpressions
Expressions representing fields to be used in the GROUP BY clause.protected Expression
havingExpression
Expression representing the HAVING clause.protected java.util.List<org.eclipse.persistence.internal.queries.ReportItem>
items
Items to be selected, these could be attributes or aggregate functions.protected java.util.List<java.lang.String>
names
Collection of names for use by results.static int
NO_PRIMARY_KEY
protected int
returnChoice
Can be one of (ShouldReturnSingleResult, ShouldReturnSingleValue, ShouldReturnSingleAttribute) Simplifies the result by only returning the first result, first value, or all attribute valuesprotected java.util.Set<java.lang.Object>
returnedKeys
protected int
shouldRetrievePrimaryKeys
Flag indicating whether the primary key values should also be retrieved for the reference class.static int
ShouldReturnArray
For EJB 3 support returns results as an Object array.static int
ShouldReturnReportResult
Default, returns ReportQueryResult objects.static int
ShouldReturnSingleAttribute
Simplifies the result by only returning the single attribute(as opposed to wrapping in a ReportQueryResult).static int
ShouldReturnSingleResult
Simplifies the result by only returning the first result.static int
ShouldReturnSingleValue
Simplifies the result by only returning one value.static int
ShouldReturnWithoutReportQueryResult
For EJB 3 support returns results without using the ReportQueryResultstatic int
ShouldSelectValue1
For example, ...-
Fields inherited from class org.eclipse.persistence.queries.ReadAllQuery
connectByExpression, containerPolicy, direction, orderSiblingsByExpressions, startWithExpression
-
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 ReportQuery()
INTERNAL: The builder should be provided.ReportQuery(java.lang.Class javaClass, Expression expression)
ReportQuery(java.lang.Class javaClass, ExpressionBuilder builder)
PUBLIC: The report query is require to be constructor with an expression builder.ReportQuery(ExpressionBuilder builder)
PUBLIC: The report query is require to be constructor with an expression builder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAttribute(java.lang.String itemName)
PUBLIC: Add the attribute from the reference class to be included in the result.void
addAttribute(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the attribute to be included in the result.void
addAttribute(java.lang.String itemName, Expression attributeExpression, java.lang.Class type)
PUBLIC: Add the attribute to be included in the result.void
addAverage(java.lang.String itemName)
PUBLIC: Add the average value of the attribute to be included in the result.void
addAverage(java.lang.String itemName, java.lang.Class resultType)
PUBLIC: Add the average value of the attribute to be included in the result and return it as the specified resultType.void
addAverage(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the average value of the attribute to be included in the result.void
addAverage(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
PUBLIC: Add the average value of the attribute to be included in the result and return it as the specified resultType.void
addConstructorReportItem(ConstructorReportItem item)
PUBLIC: Add a ConstructorReportItem to this query's set of return values.void
addCount()
PUBLIC: Include the number of rows returned by the query in the result.void
addCount(java.lang.String attributeName)
PUBLIC: Include the number of rows returned by the query in the result, where attributeExpression is not null.void
addCount(java.lang.String attributeName, java.lang.Class resultType)
PUBLIC: Include the number of rows returned by the query in the result, where attributeExpression is not null.void
addCount(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Include the number of rows returned by the query in the result, where attributeExpression is not null.void
addCount(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
PUBLIC: Include the number of rows returned by the query in the result, where attributeExpression is not null.void
addFunctionItem(java.lang.String itemName, Expression attributeExpression, java.lang.String functionName)
ADVANCED: Add the function against the attribute expression to be included in the result.void
addGrouping(java.lang.String attributeName)
PUBLIC: Add the attribute to the group by expressions.void
addGrouping(Expression expression)
PUBLIC: Add the attribute expression to the group by expressions.void
addItem(java.lang.String itemName, Expression attributeExpression)
ADVANCED: Add the expression value to be included in the result.protected void
addItem(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
INTERNAL: Add the expression value to be included in the result.void
addItem(java.lang.String itemName, Expression attributeExpression, java.util.List joinedExpressions)
ADVANCED: Add the expression value to be included in the result.void
addMaximum(java.lang.String itemName)
PUBLIC: Add the maximum value of the attribute to be included in the result.void
addMaximum(java.lang.String itemName, java.lang.Class resultType)
PUBLIC: Add the maximum value of the attribute to be included in the result.void
addMaximum(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the maximum value of the attribute to be included in the result.void
addMaximum(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
PUBLIC: Add the maximum value of the attribute to be included in the result.void
addMinimum(java.lang.String itemName)
PUBLIC: Add the minimum value of the attribute to be included in the result.void
addMinimum(java.lang.String itemName, java.lang.Class resultType)
PUBLIC: Add the minimum value of the attribute to be included in the result.void
addMinimum(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the minimum value of the attribute to be included in the result.void
addMinimum(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
PUBLIC: Add the minimum value of the attribute to be included in the result.void
addStandardDeviation(java.lang.String itemName)
PUBLIC: Add the standard deviation value of the attribute to be included in the result.void
addStandardDeviation(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the standard deviation value of the attribute to be included in the result.void
addSum(java.lang.String itemName)
PUBLIC: Add the sum value of the attribute to be included in the result.void
addSum(java.lang.String itemName, java.lang.Class resultType)
PUBLIC: Add the sum value of the attribute to be included in the result and return it as the specified resultType.void
addSum(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the sum value of the attribute to be included in the result.void
addSum(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
PUBLIC: Add the sum value of the attribute to be included in the result and return it as the specified resultType.void
addVariance(java.lang.String itemName)
PUBLIC: Add the variance value of the attribute to be included in the result.void
addVariance(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the variance value of the attribute to be included in the result.ConstructorReportItem
beginAddingConstructorArguments(java.lang.Class constructorClass)
PUBLIC: Call a constructor for the given class with the results of this query.ConstructorReportItem
beginAddingConstructorArguments(java.lang.Class constructorClass, java.lang.Class[] constructorArgTypes)
PUBLIC: Call a constructor for the given class with the results of this query.java.lang.Object
buildObject(org.eclipse.persistence.internal.sessions.AbstractRecord row)
INTERNAL: By default return the row.java.lang.Object
buildObject(org.eclipse.persistence.internal.sessions.AbstractRecord row, java.util.Vector toManyJoinData)
INTERNAL: Construct a result from a row.java.lang.Object
buildObjects(java.util.Vector rows)
INTERNAL: Construct a container of ReportQueryResult from the rows.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.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
clearItems()
INTERNAL: Clear the ReportQueryItemsjava.lang.Object
clone()
INTERNAL: Clone the query.void
copyReportItems(java.util.Map alreadyDone)
INTERNAL: Required for a very special case of bug 2612185: ReportItems from parallelExpressions, on a ReportQuery which is a subQuery, which is being batch read.void
dontRetrievePrimaryKeys()
PUBLIC: Set if the query results should contain the primary keys or each associated object.void
dontReturnSingleAttribute()
PUBLIC: Don't simplify the result by returning the single attribute.void
dontReturnSingleResult()
PUBLIC: Simplifies the result by only returning the first result.void
dontReturnSingleValue()
PUBLIC: Simplifies the result by only returning a single value.void
dontReturnWithoutReportQueryResult()
PUBLIC: Simplifies the result by only returning a single value.void
endAddingToConstructorItem()
PUBLIC: Used in conjunction with beginAddingConstructorArguments to signal that expressions should no longer be be added to the collection used in the constructor.boolean
equals(java.lang.Object object)
INTERNAL: Return if the query is equal to the other.java.lang.Object
executeDatabaseQuery()
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.protected QueryRedirector
getDefaultRedirector()
INTERNAL: Returns the specific default redirector for this query type.java.util.List<Expression>
getGroupByExpressions()
INTERNAL: Return the group bys.Expression
getHavingExpression()
INTERNAL: Return the Having expression.org.eclipse.persistence.internal.queries.ReportItem
getItem(java.lang.String name)
INTERNAL:java.util.List<org.eclipse.persistence.internal.queries.ReportItem>
getItems()
INTERNAL:java.util.List<java.lang.String>
getNames()
INTERNAL: Lazily initialize and return the names of the items requested for use in each result object.java.util.Vector
getQueryExpressions()
INTERNAL: return a collection of expressions if PK's are used.int
getReturnType()
PUBLIC: Return the return type.boolean
hasGroupByExpressions()
INTERNAL: Return if any group bys exist, allow lazy initialization.boolean
isReportQuery()
PUBLIC: Return if this is a report query.protected void
prepare()
INTERNAL: Prepare the receiver for execution in a session.void
prepareFetchGroup()
INTERNAL: ReportQuery doesn't support fetch groups.void
prepareFromQuery(DatabaseQuery query)
INTERNAL: Prepare the query from the prepared query.protected void
prepareObjectAttributeCount(java.util.Map clonedExpressions)
INTERNAL: Prepare a report query with a count defined on an object attribute.protected void
prepareSelectAllRows()
INTERNAL: Prepare the mechanism.void
prepareSubSelect(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow, java.util.Map clonedExpressions)
INTERNAL: Prepare the receiver for being printed inside a subselect.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
retrievePrimaryKeys()
PUBLIC: Set if the query results should contain the primary keys or each associated object.void
returnSingleAttribute()
PUBLIC: Simplify the result by returning a single attribute.void
returnSingleResult()
PUBLIC: Simplifies the result by only returning the first result.void
returnSingleValue()
PUBLIC: Simplifies the result by only returning a single value.void
returnWithoutReportQueryResult()
PUBLIC: Simplifies the result by only returning a single value.void
selectValue1()
PUBLIC: Simplifies the result by only returning a single value.void
setGroupByExpressions(java.util.List<Expression> groupByExpressions)
INTERNAL: Set the group bys.void
setHavingExpression(Expression expression)
PUBLIC: Add the expression to the query to be used in the HAVING clause.void
setItems(java.util.List<org.eclipse.persistence.internal.queries.ReportItem> items)
INTERNAL: Set the ReportQueryItems defining the attributes to be read.boolean
setLockModeType(java.lang.String lockModeType, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Sets a javax.persistence.LockModeType to used with this queries execution.protected void
setNames(java.util.List<java.lang.String> names)
INTERNAL: Set the item names.void
setReturnType(int returnChoice)
PUBLIC: Set the return type.void
setShouldRetrieveFirstPrimaryKey(boolean shouldRetrieveFirstPrimaryKey)
ADVANCED: Sets if the query results should contain the first primary key of each associated object.void
setShouldRetrievePrimaryKeys(boolean shouldRetrievePrimaryKeys)
PUBLIC: Set if the query results should contain the primary keys or each associated object.void
setShouldReturnSingleAttribute(boolean newChoice)
PUBLIC: Simplifies the result by only returning the attribute (as opposed to wrapping in a ReportQueryResult).void
setShouldReturnSingleResult(boolean newChoice)
PUBLIC: Simplifies the result by only returning the first result.void
setShouldReturnSingleValue(boolean newChoice)
PUBLIC: Simplifies the result by only returning a single value.void
setShouldReturnWithoutReportQueryResult(boolean newChoice)
PUBLIC: Simplifies the result by returning a nested list instead of the ReportQueryResult.boolean
shouldRetrieveFirstPrimaryKey()
PUBLIC: Return if the query results should contain the first primary key of each associated object.boolean
shouldRetrievePrimaryKeys()
PUBLIC: Return if the query results should contain the primary keys or each associated object.boolean
shouldReturnArray()
PUBLIC: Returns true if results should be returned as an Object array.boolean
shouldReturnSingleAttribute()
PUBLIC: Answer if we are only returning the attribute (as opposed to wrapping in a ReportQueryResult).boolean
shouldReturnSingleResult()
PUBLIC: Simplifies the result by only returning the first result.boolean
shouldReturnSingleValue()
PUBLIC: Simplifies the result by only returning a single value.boolean
shouldReturnWithoutReportQueryResult()
PUBLIC: Simplifies the result by returning a nested list instead of the ReportQueryResult.boolean
shouldSelectValue1()
PUBLIC: Returns true if results should be returned as an Object array.-
Methods inherited from class org.eclipse.persistence.queries.ReadAllQuery
addAscendingOrdering, cacheResult, checkCustomQueryFlag, conformResult, execute, executeObjectLevelReadQuery, executeObjectLevelReadQueryFromResultSet, getConnectByExpression, getContainerPolicy, getDirection, getOrderSiblingsByExpressions, getReadQuery, getStartWithExpression, hasHierarchicalExpressions, isDefaultPropertiesQuery, isReadAllQuery, prepareCustomQuery, prepareForExecution, registerResultInUnitOfWork, registerResultSetInUnitOfWork, remoteExecute, setContainerPolicy, setHierarchicalQueryClause, setHierarchicalQueryClause, supportsResultSetAccessOptimizationOnExecute, supportsResultSetAccessOptimizationOnPrepare, useCollectionClass, useCursoredStream, useCursoredStream, useCursoredStream, useMapClass, useScrollableCursor, useScrollableCursor, useScrollableCursor
-
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, changeDescriptor, checkCacheOnly, checkDescriptor, checkEarlyReturn, checkPrepare, checkPrePrepare, clearIsResultSetOptimizedQuery, clearUsesResultSetAccessOptimization, computeBatchReadAttributes, computeBatchReadMappingQueries, computeNestedQueriesForBatchReadExpressions, conformIndividualResult, conformResultsInUnitOfWork, copyFromQuery, deepClone, dontAcquireLocks, dontCheckCache, dontRefreshIdentityMapResult, dontRefreshRemoteIdentityMapResult, dontUseDistinct, except, 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, 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, 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, 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
-
ShouldReturnReportResult
public static final int ShouldReturnReportResult
Default, returns ReportQueryResult objects.- See Also:
- Constant Field Values
-
ShouldReturnSingleResult
public static final int ShouldReturnSingleResult
Simplifies the result by only returning the first result.- See Also:
- Constant Field Values
-
ShouldReturnSingleValue
public static final int ShouldReturnSingleValue
Simplifies the result by only returning one value.- See Also:
- Constant Field Values
-
ShouldReturnSingleAttribute
public static final int ShouldReturnSingleAttribute
Simplifies the result by only returning the single attribute(as opposed to wrapping in a ReportQueryResult).- See Also:
- Constant Field Values
-
ShouldReturnWithoutReportQueryResult
public static final int ShouldReturnWithoutReportQueryResult
For EJB 3 support returns results without using the ReportQueryResult- See Also:
- Constant Field Values
-
ShouldReturnArray
public static final int ShouldReturnArray
For EJB 3 support returns results as an Object array.- See Also:
- Constant Field Values
-
ShouldSelectValue1
public static final int ShouldSelectValue1
For example, ... EXISTS( SELECT 1 FROM ...- See Also:
- Constant Field Values
-
FULL_PRIMARY_KEY
public static final int FULL_PRIMARY_KEY
Specifies whether to retrieve primary keys, first primary key, or no primary key.- See Also:
- Constant Field Values
-
FIRST_PRIMARY_KEY
public static final int FIRST_PRIMARY_KEY
- See Also:
- Constant Field Values
-
NO_PRIMARY_KEY
public static final int NO_PRIMARY_KEY
- See Also:
- Constant Field Values
-
shouldRetrievePrimaryKeys
protected int shouldRetrievePrimaryKeys
Flag indicating whether the primary key values should also be retrieved for the reference class.
-
names
protected java.util.List<java.lang.String> names
Collection of names for use by results.
-
items
protected java.util.List<org.eclipse.persistence.internal.queries.ReportItem> items
Items to be selected, these could be attributes or aggregate functions.
-
groupByExpressions
protected java.util.List<Expression> groupByExpressions
Expressions representing fields to be used in the GROUP BY clause.
-
havingExpression
protected Expression havingExpression
Expression representing the HAVING clause.
-
returnChoice
protected int returnChoice
Can be one of (ShouldReturnSingleResult, ShouldReturnSingleValue, ShouldReturnSingleAttribute) Simplifies the result by only returning the first result, first value, or all attribute values
-
addToConstructorItem
protected boolean addToConstructorItem
flag to allow items to be added to the last ConstructorReportItem
-
returnedKeys
protected java.util.Set<java.lang.Object> returnedKeys
-
-
Constructor Detail
-
ReportQuery
public ReportQuery()
INTERNAL: The builder should be provided.
-
ReportQuery
public ReportQuery(java.lang.Class javaClass, Expression expression)
-
ReportQuery
public ReportQuery(java.lang.Class javaClass, ExpressionBuilder builder)
PUBLIC: The report query is require to be constructor with an expression builder. This build must be used for the selection critiera, any item expressions, group bys and order bys.
-
ReportQuery
public ReportQuery(ExpressionBuilder builder)
PUBLIC: The report query is require to be constructor with an expression builder. This build must be used for the selection critiera, any item expressions, group bys and order bys.
-
-
Method Detail
-
addAttribute
public void addAttribute(java.lang.String itemName)
PUBLIC: Add the attribute from the reference class to be included in the result. EXAMPLE: reportQuery.addAttribute("firstName");
-
addAttribute
public void addAttribute(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the attribute to be included in the result. EXAMPLE: reportQuery.addAttribute("city", expBuilder.get("address").get("city"));
-
addAttribute
public void addAttribute(java.lang.String itemName, Expression attributeExpression, java.lang.Class type)
PUBLIC: Add the attribute to be included in the result. Return the result as the provided class EXAMPLE: reportQuery.addAttribute("city", expBuilder.get("period").get("startTime"), Time.class);
-
addAverage
public void addAverage(java.lang.String itemName)
PUBLIC: Add the average value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addAverage("salary");
-
addAverage
public void addAverage(java.lang.String itemName, java.lang.Class resultType)
PUBLIC: Add the average value of the attribute to be included in the result and return it as the specified resultType. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addAverage("salary", Float.class);
-
addAverage
public void addAverage(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the average value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addAverage("managerSalary", expBuilder.get("manager").get("salary"));
-
addAverage
public void addAverage(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
PUBLIC: Add the average value of the attribute to be included in the result and return it as the specified resultType. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addAverage("managerSalary", expBuilder.get("manager").get("salary"), Double.class);
-
addConstructorReportItem
public void addConstructorReportItem(ConstructorReportItem item)
PUBLIC: Add a ConstructorReportItem to this query's set of return values.- Parameters:
item
- used to specify a class constructor and values to pass in from this query- See Also:
ConstructorReportItem
-
addCount
public void addCount()
PUBLIC: Include the number of rows returned by the query in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: Java: reportQuery.addCount(); SQL: SELECT COUNT (*) FROM ...- See Also:
addCount(java.lang.String)
-
addCount
public void addCount(java.lang.String attributeName)
PUBLIC: Include the number of rows returned by the query in the result, where attributeExpression is not null. Aggregation functions can be used with a group by, or on the entire result set.Example:
TopLink: reportQuery.addCount("id"); SQL: SELECT COUNT (t0.EMP_ID) FROM EMPLOYEE t0, ...
- Parameters:
attributeName
- the number of rows where attributeName is not null will be returned.- See Also:
addCount(java.lang.String, org.eclipse.persistence.expressions.Expression)
-
addCount
public void addCount(java.lang.String attributeName, java.lang.Class resultType)
PUBLIC: Include the number of rows returned by the query in the result, where attributeExpression is not null. Aggregation functions can be used with a group by, or on the entire result set. Set the count to be returned as the specified resultType.Example:
TopLink: reportQuery.addCount("id", Long.class); SQL: SELECT COUNT (t0.EMP_ID) FROM EMPLOYEE t0, ...
- Parameters:
attributeName
- the number of rows where attributeName is not null will be returned.- See Also:
addCount(java.lang.String, org.eclipse.persistence.expressions.Expression)
-
addCount
public void addCount(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Include the number of rows returned by the query in the result, where attributeExpression is not null. Aggregation functions can be used with a group by, or on the entire result set.Example:
TopLink: reportQuery.addCount("Count", getExpressionBuilder().get("id")); SQL: SELECT COUNT (t0.EMP_ID) FROM EMPLOYEE t0, ...
Example: counting only distinct values of an attribute.
objectAttributes can be specified also, even accross many to many mappings.TopLink: reportQuery.addCount("Count", getExpressionBuilder().get("address").distinct()); SQL: SELECT COUNT (DISTINCT t0.ADDR_ID) FROM EMPLOYEE t0, ...
- See Also:
addCount()
-
addCount
public void addCount(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
PUBLIC: Include the number of rows returned by the query in the result, where attributeExpression is not null. Aggregation functions can be used with a group by, or on the entire result set. Set the count to be returned as the specified resultType.Example:
TopLink: reportQuery.addCount("Count", getExpressionBuilder().get("id"), Integer.class); SQL: SELECT COUNT (t0.EMP_ID) FROM EMPLOYEE t0, ...
Example: counting only distinct values of an attribute.
objectAttributes can be specified also, even accross many to many mappings.TopLink: reportQuery.addCount("Count", getExpressionBuilder().get("address").distinct()); SQL: SELECT COUNT (DISTINCT t0.ADDR_ID) FROM EMPLOYEE t0, ...
- See Also:
addCount()
-
addFunctionItem
public void addFunctionItem(java.lang.String itemName, Expression attributeExpression, java.lang.String functionName)
ADVANCED: Add the function against the attribute expression to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. Example: reportQuery.addFunctionItem("average", expBuilder.get("salary"), "average");
-
addGrouping
public void addGrouping(java.lang.String attributeName)
PUBLIC: Add the attribute to the group by expressions. This will group the result set on that attribute and is normally used in conjunction with aggregation functions. Example: reportQuery.addGrouping("lastName")
-
addGrouping
public void addGrouping(Expression expression)
PUBLIC: Add the attribute expression to the group by expressions. This will group the result set on that attribute and is normally used in conjunction with aggregation functions. Example: reportQuery.addGrouping(expBuilder.get("address").get("country"))
-
setHavingExpression
public void setHavingExpression(Expression expression)
PUBLIC: Add the expression to the query to be used in the HAVING clause. This epression will be used to filter the result sets after they are grouped. It must be used in conjunction with the GROUP BY clause.Example:
reportQuery.setHavingExpression(expBuilder.get("address").get("country").equal("Canada"))
-
addItem
public void addItem(java.lang.String itemName, Expression attributeExpression)
ADVANCED: Add the expression value to be included in the result. EXAMPLE: reportQuery.addItem("name", expBuilder.get("firstName").toUpperCase());
-
addItem
public void addItem(java.lang.String itemName, Expression attributeExpression, java.util.List joinedExpressions)
ADVANCED: Add the expression value to be included in the result. EXAMPLE: reportQuery.addItem("name", expBuilder.get("firstName").toUpperCase());
-
addItem
protected void addItem(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
INTERNAL: Add the expression value to be included in the result. EXAMPLE: reportQuery.addItem("name", expBuilder.get("firstName").toUpperCase()); The resultType can be specified to support EJBQL that adheres to the EJB 3.0 spec.
-
addMaximum
public void addMaximum(java.lang.String itemName)
PUBLIC: Add the maximum value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addMaximum("salary");
-
addMaximum
public void addMaximum(java.lang.String itemName, java.lang.Class resultType)
PUBLIC: Add the maximum value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addMaximum("salary", Integer.class);
-
addMaximum
public void addMaximum(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the maximum value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addMaximum("managerSalary", expBuilder.get("manager").get("salary"));
-
addMaximum
public void addMaximum(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
PUBLIC: Add the maximum value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addMaximum("managerSalary", expBuilder.get("manager").get("salary"), Integer.class);
-
addMinimum
public void addMinimum(java.lang.String itemName)
PUBLIC: Add the minimum value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addMinimum("salary");
-
addMinimum
public void addMinimum(java.lang.String itemName, java.lang.Class resultType)
PUBLIC: Add the minimum value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addMinimum("salary", Integer.class);
-
addMinimum
public void addMinimum(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the minimum value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addMinimum("managerSalary", expBuilder.get("manager").get("salary"));
-
addMinimum
public void addMinimum(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
PUBLIC: Add the minimum value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addMinimum("managerSalary", expBuilder.get("manager").get("salary"), Integer.class);
-
addStandardDeviation
public void addStandardDeviation(java.lang.String itemName)
PUBLIC: Add the standard deviation value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addStandardDeviation("salary");
-
addStandardDeviation
public void addStandardDeviation(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the standard deviation value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addStandardDeviation("managerSalary", expBuilder.get("manager").get("salary"));
-
addSum
public void addSum(java.lang.String itemName)
PUBLIC: Add the sum value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addSum("salary");
-
addSum
public void addSum(java.lang.String itemName, java.lang.Class resultType)
PUBLIC: Add the sum value of the attribute to be included in the result and return it as the specified resultType. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addSum("salary", Float.class);
-
addSum
public void addSum(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the sum value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addSum("managerSalary", expBuilder.get("manager").get("salary"));
-
addSum
public void addSum(java.lang.String itemName, Expression attributeExpression, java.lang.Class resultType)
PUBLIC: Add the sum value of the attribute to be included in the result and return it as the specified resultType. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addSum("managerSalary", expBuilder.get("manager").get("salary"), Float.class);
-
addVariance
public void addVariance(java.lang.String itemName)
PUBLIC: Add the variance value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addVariance("salary");
-
addVariance
public void addVariance(java.lang.String itemName, Expression attributeExpression)
PUBLIC: Add the variance value of the attribute to be included in the result. Aggregation functions can be used with a group by, or on the entire result set. EXAMPLE: reportQuery.addVariance("managerSalary", expBuilder.get("manager").get("salary"));
-
beginAddingConstructorArguments
public ConstructorReportItem beginAddingConstructorArguments(java.lang.Class constructorClass)
PUBLIC: Call a constructor for the given class with the results of this query.- Parameters:
constructorClass
-
-
beginAddingConstructorArguments
public ConstructorReportItem beginAddingConstructorArguments(java.lang.Class constructorClass, java.lang.Class[] constructorArgTypes)
PUBLIC: Call a constructor for the given class with the results of this query.- Parameters:
constructorClass
-constructorArgTypes
- - sets the argument types to be passed to the constructor.
-
buildObject
public java.lang.Object buildObject(org.eclipse.persistence.internal.sessions.AbstractRecord row)
INTERNAL: By default return the row. Used by cursored stream.- Overrides:
buildObject
in classObjectLevelReadQuery
-
buildObject
public java.lang.Object buildObject(org.eclipse.persistence.internal.sessions.AbstractRecord row, java.util.Vector toManyJoinData)
INTERNAL: Construct a result from a row. Either return a ReportQueryResult or just the attribute.- Parameters:
row
-toManyJoinData
- All rows fetched by query. It is required to be not null.
-
buildObjects
public java.lang.Object buildObjects(java.util.Vector rows)
INTERNAL: Construct a container of ReportQueryResult from the rows. If only one result or value was asked for only return that.
-
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.- Overrides:
checkEarlyReturnLocal
in classReadAllQuery
-
checkForCustomQuery
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. This is done before the query is copied and prepared/executed. null means there is none.- Overrides:
checkForCustomQuery
in classObjectLevelReadQuery
- Parameters:
session
- Current session.translationRow
- Database record.- Returns:
- Custom database query or
null
when custom database query is not set.
-
clone
public java.lang.Object clone()
INTERNAL: Clone the query.- Overrides:
clone
in classReadAllQuery
- Returns:
- A clone of this instance.
-
copyReportItems
public void copyReportItems(java.util.Map alreadyDone)
INTERNAL: Required for a very special case of bug 2612185: ReportItems from parallelExpressions, on a ReportQuery which is a subQuery, which is being batch read. In a batch query the selection criteria is effectively cloned twice, meaning the ReportItems need to be cloned an extra time also to stay in sync. Each call to copiedVersionFrom() will take O(1) time as the expression was already cloned.
-
dontRetrievePrimaryKeys
public void dontRetrievePrimaryKeys()
PUBLIC: Set if the query results should contain the primary keys or each associated object. This make retrieving the real object easier. By default they are not retrieved.
-
dontReturnSingleAttribute
public void dontReturnSingleAttribute()
PUBLIC: Don't simplify the result by returning the single attribute. Wrap in a ReportQueryResult.
-
dontReturnSingleResult
public void dontReturnSingleResult()
PUBLIC: Simplifies the result by only returning the first result. This can be used if it known that only one row is returned by the report query.
-
dontReturnSingleValue
public void dontReturnSingleValue()
PUBLIC: Simplifies the result by only returning a single value. This can be used if it known that only one row is returned by the report query and only a single item is added to the report.
-
dontReturnWithoutReportQueryResult
public void dontReturnWithoutReportQueryResult()
PUBLIC: Simplifies the result by only returning a single value. This can be used if it known that only one row is returned by the report query and only a single item is added to the report.
-
endAddingToConstructorItem
public void endAddingToConstructorItem()
PUBLIC: Used in conjunction with beginAddingConstructorArguments to signal that expressions should no longer be be added to the collection used in the constructor.
-
executeDatabaseQuery
public java.lang.Object executeDatabaseQuery() throws DatabaseException
INTERNAL: Execute the query. Get the rows and build the objects or report data from the rows.- Overrides:
executeDatabaseQuery
in classObjectLevelReadQuery
- Returns:
- either collection of objects, or report data resulting from execution of query.
- 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 classReadAllQuery
-
getGroupByExpressions
public java.util.List<Expression> getGroupByExpressions()
INTERNAL: Return the group bys.
-
hasGroupByExpressions
public boolean hasGroupByExpressions()
INTERNAL: Return if any group bys exist, allow lazy initialization. This should be called before calling getGroupByExpressions().
-
setGroupByExpressions
public void setGroupByExpressions(java.util.List<Expression> groupByExpressions)
INTERNAL: Set the group bys.
-
getHavingExpression
public Expression getHavingExpression()
INTERNAL: Return the Having expression.
-
getQueryExpressions
public java.util.Vector getQueryExpressions()
INTERNAL: return a collection of expressions if PK's are used.
-
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 classReadAllQuery
-
getItems
public java.util.List<org.eclipse.persistence.internal.queries.ReportItem> getItems()
INTERNAL:- Returns:
- ReportItems defining the attributes to be read.
-
getItem
public org.eclipse.persistence.internal.queries.ReportItem getItem(java.lang.String name)
INTERNAL:- Returns:
- ReportItems with the name
-
setItems
public void setItems(java.util.List<org.eclipse.persistence.internal.queries.ReportItem> items)
INTERNAL: Set the ReportQueryItems defining the attributes to be read.
-
setLockModeType
public boolean setLockModeType(java.lang.String lockModeType, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Sets a javax.persistence.LockModeType to used with this queries execution. The valid types are: - WRITE - READ - OPTIMISTIC - OPTIMISTIC_FORCE_INCREMENT - PESSIMISTIC - PESSIMISTIC_FORCE_INCREMENT - NONE Setting a null type will do nothing.- Overrides:
setLockModeType
in classObjectLevelReadQuery
- Returns:
- returns a failure flag indicating that we were UNABLE to set the lock mode because of validation. Callers to this method should check the return value and throw the necessary exception.
-
clearItems
public void clearItems()
INTERNAL: Clear the ReportQueryItems
-
getNames
public java.util.List<java.lang.String> getNames()
INTERNAL: Lazily initialize and return the names of the items requested for use in each result object.
-
setNames
protected void setNames(java.util.List<java.lang.String> names)
INTERNAL: Set the item names.
-
isReportQuery
public boolean isReportQuery()
PUBLIC: Return if this is a report query.- Overrides:
isReportQuery
in classDatabaseQuery
-
prepare
protected void prepare() throws QueryException
INTERNAL: Prepare the receiver for execution in a session. Initialize each item with its DTF mapping- Overrides:
prepare
in classReadAllQuery
- Throws:
QueryException
-
prepareFetchGroup
public void prepareFetchGroup() throws QueryException
INTERNAL: ReportQuery doesn't support fetch groups.- Overrides:
prepareFetchGroup
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 EJBQL parse cache to allow preparsed queries to be used to prepare dynamic queries. This only copies over properties that are configured through EJBQL.- Overrides:
prepareFromQuery
in classReadAllQuery
-
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 classReadAllQuery
-
prepareObjectAttributeCount
protected void prepareObjectAttributeCount(java.util.Map clonedExpressions)
INTERNAL: Prepare a report query with a count defined on an object attribute. Added to fix bug 3268040, addCount(objectAttribute) not supported.
-
prepareSelectAllRows
protected void prepareSelectAllRows()
INTERNAL: Prepare the mechanism.- Overrides:
prepareSelectAllRows
in classReadAllQuery
-
prepareSubSelect
public void prepareSubSelect(org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow, java.util.Map clonedExpressions) throws QueryException
INTERNAL: Prepare the receiver for being printed inside a subselect. This prepares the statement but not the call.- Throws:
QueryException
-
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 classReadAllQuery
-
retrievePrimaryKeys
public void retrievePrimaryKeys()
PUBLIC: Set if the query results should contain the primary keys or each associated object. This make retrieving the real object easier. By default they are not retrieved.
-
getReturnType
public int getReturnType()
PUBLIC: Return the return type.
-
setReturnType
public void setReturnType(int returnChoice)
PUBLIC: Set the return type. This can be one of several constants,- ShouldReturnReportResult - return List<ReportQueryResult> : ReportQueryResult (Map) of each row is returned.
- ShouldReturnSingleResult - return ReportQueryResult : Only first row is returned.
- ShouldReturnSingleAttribute - return List<Object> : Only first column of (all) rows are returned.
- ShouldReturnSingleValue - return Object : Only first value of first row is returned.
- ShouldReturnWithoutReportQueryResult - return List<Object[]> : Array of each row is returned.
-
returnSingleAttribute
public void returnSingleAttribute()
PUBLIC: Simplify the result by returning a single attribute. Don't wrap in a ReportQueryResult.
-
returnSingleResult
public void returnSingleResult()
PUBLIC: Simplifies the result by only returning the first result. This can be used if it known that only one row is returned by the report query.
-
returnSingleValue
public void returnSingleValue()
PUBLIC: Simplifies the result by only returning a single value. This can be used if it known that only one row is returned by the report query and only a single item is added to the report.
-
returnWithoutReportQueryResult
public void returnWithoutReportQueryResult()
PUBLIC: Simplifies the result by only returning a single value. This can be used if it known that only one row is returned by the report query and only a single item is added to the report.
-
selectValue1
public void selectValue1()
PUBLIC: Simplifies the result by only returning a single value. This can be used if it known that only one row is returned by the report query and only a single item is added to the report.
-
setShouldRetrievePrimaryKeys
public void setShouldRetrievePrimaryKeys(boolean shouldRetrievePrimaryKeys)
PUBLIC: Set if the query results should contain the primary keys or each associated object. This make retrieving the real object easier. By default they are not retrieved.
-
setShouldRetrieveFirstPrimaryKey
public void setShouldRetrieveFirstPrimaryKey(boolean shouldRetrieveFirstPrimaryKey)
ADVANCED: Sets if the query results should contain the first primary key of each associated object. Usefull if this is an EXISTS subquery and you don't care what fields are returned so long as it is a single field. The default value is false. This should only be used with a subquery.
-
setShouldReturnSingleAttribute
public void setShouldReturnSingleAttribute(boolean newChoice)
PUBLIC: Simplifies the result by only returning the attribute (as opposed to wrapping in a ReportQueryResult). This can be used if it is known that only one attribute is returned by the report query.
-
setShouldReturnSingleResult
public void setShouldReturnSingleResult(boolean newChoice)
PUBLIC: Simplifies the result by only returning the first result. This can be used if it known that only one row is returned by the report query.
-
setShouldReturnSingleValue
public void setShouldReturnSingleValue(boolean newChoice)
PUBLIC: Simplifies the result by only returning a single value. This can be used if it known that only one row is returned by the report query and only a single item is added to the report.
-
setShouldReturnWithoutReportQueryResult
public void setShouldReturnWithoutReportQueryResult(boolean newChoice)
PUBLIC: Simplifies the result by returning a nested list instead of the ReportQueryResult. This is used by EJB 3.
-
shouldRetrievePrimaryKeys
public boolean shouldRetrievePrimaryKeys()
PUBLIC: Return if the query results should contain the primary keys or each associated object. This make retrieving the real object easier.
-
shouldRetrieveFirstPrimaryKey
public boolean shouldRetrieveFirstPrimaryKey()
PUBLIC: Return if the query results should contain the first primary key of each associated object. Usefull if this is an EXISTS subquery and you don't care what fields are returned so long as it is a single field.
-
shouldReturnSingleAttribute
public boolean shouldReturnSingleAttribute()
PUBLIC: Answer if we are only returning the attribute (as opposed to wrapping in a ReportQueryResult). This can be used if it is known that only one attribute is returned by the report query.
-
shouldReturnSingleResult
public boolean shouldReturnSingleResult()
PUBLIC: Simplifies the result by only returning the first result. This can be used if it known that only one row is returned by the report query.
-
shouldReturnSingleValue
public boolean shouldReturnSingleValue()
PUBLIC: Simplifies the result by only returning a single value. This can be used if it known that only one row is returned by the report query and only a single item is added to the report.
-
shouldReturnWithoutReportQueryResult
public boolean shouldReturnWithoutReportQueryResult()
PUBLIC: Simplifies the result by returning a nested list instead of the ReportQueryResult. This is used by EJB 3.
-
shouldReturnArray
public boolean shouldReturnArray()
PUBLIC: Returns true if results should be returned as an Object array.
-
shouldSelectValue1
public boolean shouldSelectValue1()
PUBLIC: Returns true if results should be returned as an Object array.
-
-