public class SubqueryEntityResolver extends Resolver
Resolver retrieves the type for an abstract schema name (entity name) if it can
be resolved otherwise a derived path will be assumed. This Resolver is used within a
subquery and it handles the following two cases.
The "root" object in the subquery is an unqualified derived path:
UPDATE Employee SET name = 'JPQL'
WHERE (SELECT a FROM addr a)
and
The "root" object in the subquery is an entity:
UPDATE Employee SET name = 'JPQL'
WHERE (SELECT a FROM Address a)| Constructor and Description |
|---|
SubqueryEntityResolver(Resolver parent,
JPQLQueryContext queryContext,
AbstractSchemaName abstractSchemaName)
Creates a new
DerivedPathResolver. |
| Modifier and Type | Method and Description |
|---|---|
protected IType |
buildType()
|
protected ITypeDeclaration |
buildTypeDeclaration()
Resolves the
ITypeDeclaration of the property handled by this Resolver. |
java.lang.String |
getAbstractSchemaName()
Returns the name of the entity to resolve.
|
IManagedType |
getManagedType()
Returns the
IManagedType associated with the field handled by this Resolver. |
IMapping |
getMapping()
Returns the
IMapping for the wrapped field. |
protected Resolver |
resolveDerivePathResolver()
Creates the
Resolver for a unqualified derived path expression. |
java.lang.String |
toString() |
addChild, checkParent, getChild, getParent, getParentManagedType, getParentMapping, getParentType, getParentTypeDeclaration, getProvider, getQuery, getType, getType, getType, getTypeDeclaration, getTypeHelper, getTypeRepository, isNullAllowed, setNullAllowedpublic SubqueryEntityResolver(Resolver parent, JPQLQueryContext queryContext, AbstractSchemaName abstractSchemaName)
DerivedPathResolver.parent - The parent Resolver, which is never nullqueryContext - The JPQLQueryContext for the subqueryabstractSchemaName - The AbstractSchemaName holding onto the the name of the entityprotected IType buildType()
protected ITypeDeclaration buildTypeDeclaration()
ITypeDeclaration of the property handled by this Resolver.buildTypeDeclaration in class ResolverITypeDeclaration that was resolved by this Resolver or the
ITypeDeclaration for IType.UNRESOLVABLE_TYPE if it could not be resolvedpublic java.lang.String getAbstractSchemaName()
nullpublic IManagedType getManagedType()
IManagedType associated with the field handled by this Resolver.
If this Resolver does not handle a field that has a IManagedType, then
null should be returned.
For example: "SELECT e FROM Employee e", the Resolver for
e would be returning the IManagedType for Employee.
getManagedType in class ResolverIManagedType, if it could be resolved; null otherwisepublic IMapping getMapping()
IMapping for the wrapped field.getMapping in class ResolverIMapping or null if none existsprotected Resolver resolveDerivePathResolver()
Resolver for a unqualified derived path expression.null Resolverpublic java.lang.String toString()
toString in class java.lang.Object