HHH-16495 SemanticException for non-cross entity joins without predicate
This commit is contained in:
parent
35b8bd1313
commit
9e09c057c5
|
@ -3403,13 +3403,18 @@ public abstract class BaseSqmToSqlAstConverter<T extends Statement> extends Base
|
|||
predicate.get()
|
||||
);
|
||||
|
||||
// add any additional join restrictions
|
||||
if ( sqmJoin.getJoinPredicate() != null ) {
|
||||
final SqmJoin<?, ?> oldJoin = currentlyProcessingJoin;
|
||||
currentlyProcessingJoin = sqmJoin;
|
||||
tableGroupJoin.applyPredicate( visitNestedTopLevelPredicate( sqmJoin.getJoinPredicate() ) );
|
||||
currentlyProcessingJoin = oldJoin;
|
||||
}
|
||||
else if ( correspondingSqlJoinType != SqlAstJoinType.CROSS ) {
|
||||
throw new SemanticException(
|
||||
"Entity join did not specify a predicate, " +
|
||||
"please define an on clause or use an explicit cross join: " + sqmJoin
|
||||
);
|
||||
}
|
||||
|
||||
// Note that we add the entity join after processing the predicate because implicit joins needed in there
|
||||
// can be just ordered right before the entity join without changing the semantics
|
||||
|
|
Loading…
Reference in New Issue