Module org.eclipse.persistence.core
Class ManualQueryKeyExpression
- java.lang.Object
-
- org.eclipse.persistence.expressions.Expression
-
- org.eclipse.persistence.internal.expressions.BaseExpression
-
- org.eclipse.persistence.internal.expressions.DataExpression
-
- org.eclipse.persistence.internal.expressions.ObjectExpression
-
- org.eclipse.persistence.internal.expressions.QueryKeyExpression
-
- org.eclipse.persistence.internal.expressions.ManualQueryKeyExpression
-
- All Implemented Interfaces:
Serializable,Cloneable
public class ManualQueryKeyExpression extends QueryKeyExpression
This class represents a "query key" that isn't really there in the descriptors. For example, I could use this to create an 'employee' query key from an 'address' node even if addresses don't know their employee. It's called manual, because I will have to provide the relevant join criteria myself (normally based on a reverse relationship. Motivated by batch reading.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.internal.expressions.QueryKeyExpression
aliasedField, hasMapping, hasQueryKey, index, isAttributeExpression, isClonedForSubQuery, mapping, name, queryKey, shouldQueryToManyRelationship
-
Fields inherited from class org.eclipse.persistence.internal.expressions.ObjectExpression
castClass, derivedExpressions, descriptor, hasBeenAliased, joinSource, onClause, shouldUseOuterJoin, shouldUseOuterJoinForMultitableInheritance
-
Fields inherited from class org.eclipse.persistence.internal.expressions.DataExpression
asOfClause, derivedFields, derivedTables, hasBeenNormalized, tableAliases
-
Fields inherited from class org.eclipse.persistence.internal.expressions.BaseExpression
baseExpression, builder
-
Fields inherited from class org.eclipse.persistence.expressions.Expression
currentAlias, hashCode, lastTable, selectIfOrderedBy, shouldUseUpperCaseForIgnoreCase
-
-
Constructor Summary
Constructors Constructor Description ManualQueryKeyExpression()ManualQueryKeyExpression(String impliedRelationshipName, Expression base)ManualQueryKeyExpression(String impliedRelationshipName, Expression base, ClassDescriptor descriptor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringdescriptionOfNodeType()INTERNAL: Used for debug printing.booleanequals(Object object)INTERNAL: Return if the expression is equal to the other.List<DatabaseTable>getOwnedTables()INTERNAL: If we ever get in the circumstance of a manual query key to an aggregate, then we can assume that the owner of that aggregate isn't participating (and even if it is, we can't know which node it is, so *DO* use the aggregate's parents tablesQueryKeygetQueryKeyOrNull()booleanisAttribute()INTERNAL: We can never be an attribute, we're always a joinExpressionmappingCriteria(Expression base)ExpressionrebuildOn(Expression newBase)INTERNAL: This expression is built on a different base than the one we want.ExpressiontwistedForBaseAndContext(Expression newBase, Expression context, Expression oldBase)INTERNAL: Rebuild myself against the base, with the values of parameters supplied by the context expression.voidvalidateNode()Do any required validation for this node.-
Methods inherited from class org.eclipse.persistence.internal.expressions.QueryKeyExpression
additionalExpressionCriteria, additionalExpressionCriteriaMap, aliasForTable, checkJoinForSubSelectWithParent, computeHashCode, doQueryToManyRelationship, getAdditionalTables, getAliasedField, getAliasedTable, getField, getFields, getFieldValue, getLeafDescriptor, getLeafMapping, getMapKeyDescriptor, getMapping, getMappingFromQueryKey, getName, getNestedAttributeName, getReferenceTable, getRelationTable, getSelectionFields, getSourceTable, index, initializeAliasedField, isDirectCollection, isManyToMany, isMapKeyObjectRelationship, isOneToMany, isOneToOne, isQueryKeyExpression, normalize, normalize, postCopyIn, printJava, printSQL, rebuildOn, resetCache, shouldQueryToManyRelationship, treat, valueFromObject, valuesFromCollection, writeDescriptionOn
-
Methods inherited from class org.eclipse.persistence.internal.expressions.ObjectExpression
addDerivedExpression, anyOf, anyOfAllowingNone, assignTableAliasesStartingAt, clearAliases, convertToCastDescriptor, copyDerivedExpressions, derivedExpressionNamed, derivedManualExpressionNamed, doNotUseOuterJoin, doUseOuterJoin, existingDerivedExpressionNamed, get, getAllowingNull, getCastClass, getDescriptor, getFirstNonAggregateExpressionAfterExpressionBuilder, getForUpdateOfFields, getJoinSource, getManualQueryKey, getOnClause, getOuterJoinExpIndex, hasBeenAliased, hasDerivedExpressions, isDowncast, isObjectExpression, isTreatUsed, isUsingOuterJoinForMultitableInheritance, join, leftJoin, newDerivedExpressionNamed, newManualDerivedExpressionNamed, postCopyIn, setCastClass, setJoinSource, setOnClause, setOuterJoinExpIndex, setShouldUseOuterJoinForMultitableInheritance, shouldUseOuterJoin, shouldUseOuterJoinForMultitableInheritance, type, writeForUpdateOfFields
-
Methods inherited from class org.eclipse.persistence.internal.expressions.DataExpression
addDerivedField, addDerivedTable, asOf, assignAlias, assignAlias, copyCollection, existingDerivedField, existingDerivedTable, getAlias, getAsOfClause, getContainingDescriptor, getField, getField, getTable, getTable, getTableAliases, hasAsOfClause, hasBeenNormalized, hasDerivedFields, hasDerivedTables, isDataExpression, iterateOn, newDerivedField, newDerivedTable, setHasBeenNormalized, setTableAliases, tableAliasesDescription, writeSubexpressionsTo
-
Methods inherited from class org.eclipse.persistence.internal.expressions.BaseExpression
getBaseExpression, getBuilder, resetPlaceHolderBuilder, setBaseExpression, shallowClone
-
Methods inherited from class org.eclipse.persistence.expressions.Expression
addDate, addDate, addMonths, addMonths, alias, all, all, all, all, all, all, all, all, all, all, all, all, allOf, and, any, any, any, any, any, any, any, any, any, any, any, any, anyOf, anyOfAllowingNone, as, ascending, asciiValue, average, between, between, between, between, between, between, between, between, between, caseConditionStatement, caseConditionStatement, caseStatement, caseStatement, cast, clone, cloneUsing, coalesce, coalesce, concat, containsAllKeyWords, containsAnyKeyWords, containsSubstring, containsSubstring, containsSubstringIgnoringCase, containsSubstringIgnoringCase, convertNodeToUseOuterJoin, convertToUseOuterJoin, copiedVersionFrom, count, create, create, createWithBaseLast, currentDate, currentDateDate, currentTime, currentTimeStamp, dateDifference, dateDifference, dateName, datePart, dateToString, decode, descending, difference, distinct, doesConform, doesConform, equal, equal, equal, equal, equal, equal, equal, equal, equal, equal, equalOuterJoin, equalOuterJoin, equalsIgnoreCase, equalsIgnoreCase, except, except, exceptAll, exceptAll, exists, existsNode, extract, extractFields, extractPrimaryKeyValues, extractValue, extractValues, extractXml, from, fromConstant, fromLiteral, get, getAsOfClauseRecursively, getClonedField, getFunction, getFunction, getFunction, getFunction, getFunctionWithArguments, getNumberVal, getOperator, getOperator, getParameter, getParameter, getParameter, getProperty, getSelectionFields, getSession, getStringVal, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, hashCode, hexToRaw, ifNull, in, in, in, in, in, in, in, in, in, in, in, in, indexOf, intersect, intersect, intersectAll, intersectAll, isClassTypeExpression, isCompoundExpression, isConstantExpression, isEmpty, isExpressionBuilder, isFieldExpression, isFragment, isFunctionExpression, isLiteralExpression, isLogicalExpression, isMapEntryExpression, isNull, isParameterExpression, isRelationExpression, isSubSelectExpression, isTableExpression, isTreatExpression, isValueExpression, lastDay, leftPad, leftPad, leftTrim, leftTrim, length, lessThan, lessThan, lessThan, lessThan, lessThan, lessThan, lessThan, lessThan, lessThan, lessThan, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, like, like, like, like, likeIgnoreCase, likeIgnoreCase, literal, localDate, localDateTime, localTime, locate, locate, locate, mapEntry, mapKey, maximum, minimum, monthsBetween, newTime, nextDay, noneOf, not, notBetween, notBetween, notBetween, notBetween, notBetween, notBetween, notBetween, notBetween, notBetween, notEmpty, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notExists, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notLike, notLike, notLike, notLike, notNull, nullIf, nullsFirst, nullsLast, operator, or, performOperator, postfixSQL, prefixSQL, ref, regexp, regexp, registerIn, replace, replicate, replicate, reverse, right, right, rightPad, rightPad, rightTrim, rightTrim, roundDate, selectIfOrderedBy, setLocalBase, setSelectIfOrderedBy, size, size, some, some, some, some, some, some, some, some, some, some, some, some, sql, standardDeviation, subQuery, substring, substring, substring, substring, sum, toChar, toChar, toCharacter, toDate, toLowerCase, toNumber, toString, toString, toUpperCase, toUppercaseCasedWords, translate, trim, trim, truncateDate, twist, union, union, unionAll, unionAll, value, value, value, value, value, value, value, value, value, value, valueFromObject, variance, writeAlias, writeField, writeFields
-
-
-
-
Constructor Detail
-
ManualQueryKeyExpression
public ManualQueryKeyExpression()
-
ManualQueryKeyExpression
public ManualQueryKeyExpression(String impliedRelationshipName, Expression base)
-
ManualQueryKeyExpression
public ManualQueryKeyExpression(String impliedRelationshipName, Expression base, ClassDescriptor descriptor)
-
-
Method Detail
-
equals
public boolean equals(Object object)
INTERNAL: Return if the expression is equal to the other. This is used to allow dynamic expression's SQL to be cached.- Overrides:
equalsin classQueryKeyExpression
-
descriptionOfNodeType
public String descriptionOfNodeType()
INTERNAL: Used for debug printing.- Overrides:
descriptionOfNodeTypein classQueryKeyExpression
-
getOwnedTables
public List<DatabaseTable> getOwnedTables()
INTERNAL: If we ever get in the circumstance of a manual query key to an aggregate, then we can assume that the owner of that aggregate isn't participating (and even if it is, we can't know which node it is, so *DO* use the aggregate's parents tables- Overrides:
getOwnedTablesin classQueryKeyExpression
-
getQueryKeyOrNull
public QueryKey getQueryKeyOrNull()
- Overrides:
getQueryKeyOrNullin classQueryKeyExpression
-
isAttribute
public boolean isAttribute()
INTERNAL: We can never be an attribute, we're always a join- Overrides:
isAttributein classQueryKeyExpression
-
mappingCriteria
public Expression mappingCriteria(Expression base)
- Overrides:
mappingCriteriain classQueryKeyExpression
-
rebuildOn
public Expression rebuildOn(Expression newBase)
INTERNAL: This expression is built on a different base than the one we want. Rebuild it and return the root of the new tree- Overrides:
rebuildOnin classQueryKeyExpression- See Also:
Expression.cloneUsing(Expression newBase)
-
twistedForBaseAndContext
public Expression twistedForBaseAndContext(Expression newBase, Expression context, Expression oldBase)
INTERNAL: Rebuild myself against the base, with the values of parameters supplied by the context expression. This is used for transforming a standalone expression (e.g. the join criteria of a mapping) into part of some larger expression. You normally would not call this directly, instead calling twist See the comment there for more details"- Overrides:
twistedForBaseAndContextin classQueryKeyExpression
-
validateNode
public void validateNode()
Do any required validation for this node. Throw an exception if it's incorrect.- Overrides:
validateNodein classQueryKeyExpression
-
-