Resolver that gives information about the visited Expression.
The actual Resolver will calculate the proper IType as well.
The type of an Expression follows the following rules:
identification_variable is the type of the entity object
or embeddable object to which the identification variable corresponds. The type of an
identification_variable that refers to an entity abstract schema type is the type of
the entity to which that identification variable corresponds or a subtype as determined by the
object/relational mapping.single_valued_path_expression that is a
state_field_path_expression is the same type as the corresponding state field of the
entity or embeddable class. If the state field of the entity is a primitive type, the result type
is the corresponding object type.single_valued_path_expression that is a
single_valued_object_path_expression is the type of the entity object or embeddable
object to which the path expression corresponds. A
single_valued_object_path_expression that results in an entity object will result in
an entity of the type of the relationship field or the subtype of the relationship field of the
entity object as determined by the object/relational mapping.single_valued_path_expression that is an
identification_variable to which the KEY or VALUE function has been
applied is determined by the type of the map key or value respectively, as defined by the above
rules.single_valued_path_expression that is an
identification_variable to which the ENTRY function has been applied is
Map.Entry , where the key and value types of the map entry are
determined by the above rules as applied to the map key and map value respectively.scalar_expression is the type of the scalar value to which
the expression evaluates.entity_type_expression scalar expression is the Java class
to which the resulting abstract schema type corresponds.constructor_expression is the type of the class for which
the constructor is defined. The types of the arguments to the constructor are defined by the
above rules.Provisional API: This interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.
| Modifier and Type | Class and Description |
|---|---|
| protected static class | ResolverBuilder.CollectionExpressionVisitor
This visitor is used to check if the expression visited is a |
| Modifier and Type | Field and Description |
|---|---|
| private ResolverBuilder. | collectionExpressionVisitor
This visitor is responsible to retrieve the |
| private final JPQLQueryContext | queryContext
The context used to query information about the JPQL query. |
| protected Resolver | resolver
The |
| Access | Constructor and Description |
|---|---|
| public | ResolverBuilder(JPQLQueryContext
The context used to query information about the JPQL query queryContext)Creates a new |