|
EclipseLink 2.5.0, build 'v20130425-368d603' API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.persistence.jpa.jpql.parser.AnonymousExpressionVisitor
org.eclipse.persistence.jpa.jpql.AbstractValidator
org.eclipse.persistence.jpa.jpql.AbstractSemanticValidator
org.eclipse.persistence.jpa.jpql.AbstractEclipseLinkSemanticValidator
org.eclipse.persistence.jpa.jpql.tools.EclipseLinkSemanticValidator
public class EclipseLinkSemanticValidator
This validator is responsible to gather the problems found in a JPQL query by validating the content to make sure it is semantically valid for EclipseLink. The grammar is not validated by this visitor.
For instance, the function AVG accepts a state field path. The property it represents has
to be of numeric type. AVG(e.name) is parsable but is not semantically valid because the
type of name is a string (the property signature is: "private String name
").
Note: EclipseLink does not validate types, but leaves it to the database. This is because
some databases such as Oracle allow different types to different functions and perform implicit
type conversion. i.e. CONCAT('test', 2)
returns 'test2'
. Also the
FUNC function has an unknown type, so should be allowed with any function.
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.
EclipseLinkGrammarValidator
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.eclipse.persistence.jpa.jpql.AbstractEclipseLinkSemanticValidator |
---|
AbstractEclipseLinkSemanticValidator.EclipseLinkOwningClauseVisitor, AbstractEclipseLinkSemanticValidator.SubquerySelectItemCalculator, AbstractEclipseLinkSemanticValidator.TableExpressionVisitor, AbstractEclipseLinkSemanticValidator.TopLevelFirstDeclarationVisitor |
Nested classes/interfaces inherited from class org.eclipse.persistence.jpa.jpql.AbstractValidator |
---|
AbstractValidator.BypassChildCollectionExpressionVisitor, AbstractValidator.BypassParentSubExpressionVisitor, AbstractValidator.ChildrenCollectorVisitor, AbstractValidator.JPQLQueryBNFValidator, AbstractValidator.NestedArrayVisitor, AbstractValidator.OwningClauseVisitor, AbstractValidator.OwningStatementVisitor, AbstractValidator.SubqueryVisitor |
Field Summary |
---|
Fields inherited from class org.eclipse.persistence.jpa.jpql.AbstractSemanticValidator |
---|
collectionValuedPathExpressionVisitor, helper, registerIdentificationVariable, stateFieldPathExpressionVisitor, usedIdentificationVariables, virtualIdentificationVariableFinder |
Constructor Summary | |
---|---|
EclipseLinkSemanticValidator(JPQLQueryContext queryContext)
Deprecated. Use EclipseLinkSemanticValidator(JPQLQueryContext, EclipseLinkSemanticValidatorExtension) |
|
EclipseLinkSemanticValidator(JPQLQueryContext queryContext,
EclipseLinkSemanticValidatorExtension extension)
Creates a new EclipseLinkSemanticValidator . |
|
EclipseLinkSemanticValidator(SemanticValidatorHelper helper,
EclipseLinkSemanticValidatorExtension extension)
Creates a new EclipseLinkSemanticValidator . |
Method Summary |
---|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor |
---|
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit |
Constructor Detail |
---|
@Deprecated public EclipseLinkSemanticValidator(JPQLQueryContext queryContext)
EclipseLinkSemanticValidator(JPQLQueryContext, EclipseLinkSemanticValidatorExtension)
EclipseLinkSemanticValidator
.
queryContext
- The context used to query information about the JPQL query
java.lang.NullPointerException
- The given JPQLQueryContext
cannot be null
public EclipseLinkSemanticValidator(JPQLQueryContext queryContext, EclipseLinkSemanticValidatorExtension extension)
EclipseLinkSemanticValidator
.
queryContext
- The context used to query information about the JPQL queryextension
- The following extension can be used to give access to non-JPA metadata
artifacts, such as database tables and columns
java.lang.NullPointerException
- The given JPQLQueryContext
cannot be null
public EclipseLinkSemanticValidator(SemanticValidatorHelper helper, EclipseLinkSemanticValidatorExtension extension)
EclipseLinkSemanticValidator
.
helper
- The given helper allows this validator to access the JPA artifacts without using
Hermes SPIextension
- The following extension can be used to give access to non-JPA metadata
artifacts, such as database tables and columns
java.lang.NullPointerException
- The given SemanticValidatorHelper
cannot be null
|
EclipseLink 2.5.0, build 'v20130425-368d603' API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |