public class FromSubqueryResolver extends Resolver
Resolver wraps a subquery that is used as the "root" object in a query's declaration.
Example:
SELECT e.firstName
FROM Employee e, (SELECT count(e2), e2.firstName FROM Employee e2) e3
WHERE e.firstName = e3.firstName| Modifier and Type | Class and Description |
|---|---|
protected class |
FromSubqueryResolver.VirtualManagedType
This
IManagedType represents a virtual managed type where its content will be derived
from the subquery. |
protected class |
FromSubqueryResolver.VirtualMapping
This virtual
IMapping wraps one of the select items. |
protected class |
FromSubqueryResolver.VirtualMappingBuilder
This visitor will traverse the
SELECT clause and create virtual mappings
for the state field path expressions and any expression aliased with a result variable. |
| Constructor and Description |
|---|
FromSubqueryResolver(Resolver parent,
JPQLQueryContext queryContext,
SimpleSelectStatement subquery)
Creates a new
FromSubqueryResolver. |
| Modifier and Type | Method and Description |
|---|---|
protected IType |
buildType()
|
protected ITypeDeclaration |
buildTypeDeclaration()
Resolves the
ITypeDeclaration of the property handled by this Resolver. |
IManagedType |
getManagedType()
Returns the
IManagedType associated with the field handled by this Resolver. |
addChild, checkParent, getChild, getMapping, getParent, getParentManagedType, getParentMapping, getParentType, getParentTypeDeclaration, getProvider, getQuery, getType, getType, getType, getTypeDeclaration, getTypeHelper, getTypeRepository, isNullAllowed, setNullAllowedpublic FromSubqueryResolver(Resolver parent, JPQLQueryContext queryContext, SimpleSelectStatement subquery)
FromSubqueryResolver.parent - The parent of this resolver, which is never nullqueryContext - The context used to query information about the application metadata and
cached informationsubquery - java.lang.NullPointerException - If the parent is nullprotected 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 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 otherwise