Class SubqueryEntityResolver
java.lang.Object
org.eclipse.persistence.jpa.jpql.tools.resolver.Resolver
org.eclipse.persistence.jpa.jpql.tools.resolver.SubqueryEntityResolver
This
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)- Since:
- 2.5
- Version:
- 2.5
-
Constructor Summary
ConstructorsConstructorDescriptionSubqueryEntityResolver(Resolver parent, JPQLQueryContext queryContext, AbstractSchemaName abstractSchemaName) Creates a newDerivedPathResolver. -
Method Summary
Modifier and TypeMethodDescriptionprotected ITypeprotected ITypeDeclarationResolves theITypeDeclarationof the property handled by thisResolver.Returns the name of the entity to resolve.Returns theIManagedTypeassociated with the field handled by thisResolver.Returns theIMappingfor the wrapped field.protected ResolverCreates theResolverfor a unqualified derived path expression.toString()Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.resolver.Resolver
addChild, checkParent, getChild, getParent, getParentManagedType, getParentMapping, getParentType, getParentTypeDeclaration, getProvider, getQuery, getType, getType, getType, getTypeDeclaration, getTypeHelper, getTypeRepository, isNullAllowed, setNullAllowed
-
Constructor Details
-
SubqueryEntityResolver
public SubqueryEntityResolver(Resolver parent, JPQLQueryContext queryContext, AbstractSchemaName abstractSchemaName) Creates a newDerivedPathResolver.- Parameters:
parent- The parentResolver, which is nevernullqueryContext- TheJPQLQueryContextfor the subqueryabstractSchemaName- TheAbstractSchemaNameholding onto the the name of the entity
-
-
Method Details
-
buildType
Description copied from class:Resolver -
buildTypeDeclaration
Description copied from class:ResolverResolves theITypeDeclarationof the property handled by thisResolver.- Specified by:
buildTypeDeclarationin classResolver- Returns:
- Either the
ITypeDeclarationthat was resolved by thisResolveror theITypeDeclarationforIType.UNRESOLVABLE_TYPEif it could not be resolved
-
getAbstractSchemaName
Returns the name of the entity to resolve.- Returns:
- The entity name, which is never
null
-
getManagedType
Description copied from class:ResolverReturns theIManagedTypeassociated with the field handled by thisResolver. If thisResolverdoes not handle a field that has aIManagedType, thennullshould be returned.For example: "
SELECT e FROM Employee e", theResolverfor e would be returning theIManagedTypefor Employee.- Overrides:
getManagedTypein classResolver- Returns:
- Either the
IManagedType, if it could be resolved;nullotherwise
-
getMapping
Description copied from class:ResolverReturns theIMappingfor the wrapped field.- Overrides:
getMappingin classResolver- Returns:
- Either the
IMappingornullif none exists
-
resolveDerivePathResolver
Creates theResolverfor a unqualified derived path expression.- Returns:
- A non-
nullResolver
-
toString
-