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, setNullAllowed
public SubqueryEntityResolver(Resolver parent, JPQLQueryContext queryContext, AbstractSchemaName abstractSchemaName)
DerivedPathResolver
.parent
- The parent Resolver
, which is never null
queryContext
- 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 Resolver
ITypeDeclaration
that was resolved by this Resolver
or the
ITypeDeclaration
for IType.UNRESOLVABLE_TYPE
if it could not be resolvedpublic java.lang.String getAbstractSchemaName()
null
public 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 Resolver
IManagedType
, if it could be resolved; null
otherwisepublic IMapping getMapping()
IMapping
for the wrapped field.getMapping
in class Resolver
IMapping
or null
if none existsprotected Resolver resolveDerivePathResolver()
Resolver
for a unqualified derived path expression.null
Resolver
public java.lang.String toString()
toString
in class java.lang.Object