Package com.blazebit.persistence.impl
Class ConjunctionPathExpressionFindingVisitor
java.lang.Object
com.blazebit.persistence.parser.expression.AbortableVisitorAdapter
com.blazebit.persistence.impl.ConjunctionPathExpressionFindingVisitor
- All Implemented Interfaces:
Expression.ResultVisitor<Boolean>
Finds a PathExpression, and while traversing back along the stack, capture if we are in a disjunction.
This is necessary for the EXISTS subquery rewrite for associations used in the ON clause.
We must know, if the association represented by the path expression, is used in a context,
where the cardinality 0 might be problematic. In a disjunctive or null aware context, cardinality is important.
We say, it is "inConjunction" if the path expression is used in no disjunctive or null aware context.
- Since:
- 1.4.0
- Author:
- Christian Beikov
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanisInConjunction(CompoundPredicate predicate, PathExpression pathExpression) visit(FunctionExpression expression) visit(PathExpression expression) visit(CompoundPredicate predicate) visit(IsNullPredicate predicate) Methods inherited from class com.blazebit.persistence.parser.expression.AbortableVisitorAdapter
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 Details
-
ConjunctionPathExpressionFindingVisitor
public ConjunctionPathExpressionFindingVisitor()
-
-
Method Details
-
isInConjunction
-
visit
- Specified by:
visitin interfaceExpression.ResultVisitor<Boolean>- Overrides:
visitin classAbortableVisitorAdapter
-
visit
- Specified by:
visitin interfaceExpression.ResultVisitor<Boolean>- Overrides:
visitin classAbortableVisitorAdapter
-
visit
- Specified by:
visitin interfaceExpression.ResultVisitor<Boolean>- Overrides:
visitin classAbortableVisitorAdapter
-
visit
- Specified by:
visitin interfaceExpression.ResultVisitor<Boolean>- Overrides:
visitin classAbortableVisitorAdapter
-