@@ -6866,9 +6866,7 @@ public CaseSearchedExpression visitSearchedCaseExpression(SqmCaseSearched<?> exp
6866
6866
6867
6867
Expression otherwise = null ;
6868
6868
for ( SqmCaseSearched .WhenFragment <?> whenFragment : expression .getWhenFragments () ) {
6869
- inferrableTypeAccessStack .push ( () -> null );
6870
6869
final Predicate whenPredicate = visitNestedTopLevelPredicate ( whenFragment .getPredicate () );
6871
- inferrableTypeAccessStack .pop ();
6872
6870
final MappingModelExpressible <?> alreadyKnown = resolved ;
6873
6871
inferrableTypeAccessStack .push (
6874
6872
() -> alreadyKnown == null && inferenceSupplier != null ? inferenceSupplier .get () : alreadyKnown
@@ -7056,7 +7054,9 @@ public Predicate visitNestedTopLevelPredicate(SqmPredicate predicate) {
7056
7054
originalConjunctTableGroupTreatUsages = new IdentityHashMap <>( tableGroupEntityNameUses );
7057
7055
}
7058
7056
tableGroupEntityNameUses .clear ();
7057
+ inferrableTypeAccessStack .push ( this ::getBooleanType );
7059
7058
final Predicate result = (Predicate ) predicate .accept ( this );
7059
+ inferrableTypeAccessStack .pop ();
7060
7060
final Predicate finalPredicate = combinePredicates (
7061
7061
result ,
7062
7062
consumeConjunctTreatTypeRestrictions ()
@@ -7866,7 +7866,9 @@ private JdbcMappingContainer getBooleanType() {
7866
7866
7867
7867
@ Override
7868
7868
public Object visitBooleanExpressionPredicate (SqmBooleanExpressionPredicate predicate ) {
7869
+ inferrableTypeAccessStack .push ( this ::getBooleanType );
7869
7870
final Expression booleanExpression = (Expression ) predicate .getBooleanExpression ().accept ( this );
7871
+ inferrableTypeAccessStack .pop ();
7870
7872
if ( booleanExpression instanceof SelfRenderingExpression ) {
7871
7873
final Predicate sqlPredicate = new SelfRenderingPredicate ( (SelfRenderingExpression ) booleanExpression );
7872
7874
if ( predicate .isNegated () ) {
@@ -7895,11 +7897,10 @@ public Object visitBooleanExpressionPredicate(SqmBooleanExpressionPredicate pred
7895
7897
7896
7898
@ Override
7897
7899
public Object visitExistsPredicate (SqmExistsPredicate predicate ) {
7898
- return new ExistsPredicate (
7899
- (SelectStatement ) predicate .getExpression ().accept ( this ),
7900
- predicate .isNegated (),
7901
- getBooleanType ()
7902
- );
7900
+ inferrableTypeAccessStack .push ( () -> null );
7901
+ final SelectStatement selectStatement = (SelectStatement ) predicate .getExpression ().accept ( this );
7902
+ inferrableTypeAccessStack .pop ();
7903
+ return new ExistsPredicate ( selectStatement , predicate .isNegated (), getBooleanType () );
7903
7904
}
7904
7905
7905
7906
@ Override
0 commit comments