Skip to content

Commit 6d4002b

Browse files
committed
reset the ValueHandlingMode after pagination
1 parent 9f91f2d commit 6d4002b

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

hibernate-core/src/main/java/org/hibernate/query/sqm/NodeBuilder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.Map;
1818
import java.util.Set;
1919

20+
import org.hibernate.Internal;
2021
import org.hibernate.jpa.spi.JpaCompliance;
2122
import org.hibernate.metamodel.model.domain.JpaMetamodel;
2223
import org.hibernate.query.ImmutableEntityUpdateQueryHandlingMode;
@@ -89,7 +90,8 @@ public interface NodeBuilder extends HibernateCriteriaBuilder, BindingContext {
8990

9091
QueryEngine getQueryEngine();
9192

92-
void setCriteriaValueHandlingMode(ValueHandlingMode criteriaValueHandlingMode);
93+
@Internal
94+
ValueHandlingMode setCriteriaValueHandlingMode(ValueHandlingMode criteriaValueHandlingMode);
9395

9496
<R> SqmTuple<R> tuple(
9597
Class<R> tupleType,

hibernate-core/src/main/java/org/hibernate/query/sqm/internal/AbstractSqmSelectionQuery.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,13 @@ private SqmSelectStatement<KeyedResult<R>> paginateQuery(
166166
getSqmSelectStatement().copy( noParamCopyContext() );
167167
final NodeBuilder builder = sqm.nodeBuilder();
168168
//TODO: find a better way handle parameters
169-
builder.setCriteriaValueHandlingMode(ValueHandlingMode.INLINE);
170-
return paginate( keyDefinition, keyValues, sqm, builder );
169+
final ValueHandlingMode valueHandlingMode = builder.setCriteriaValueHandlingMode(ValueHandlingMode.INLINE);
170+
try {
171+
return paginate( keyDefinition, keyValues, sqm, builder );
172+
}
173+
finally {
174+
builder.setCriteriaValueHandlingMode( valueHandlingMode );
175+
}
171176
}
172177

173178

hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmCriteriaNodeBuilder.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,11 @@ public SqmCriteriaNodeBuilder(
241241
}
242242
}
243243

244-
public void setCriteriaValueHandlingMode(ValueHandlingMode criteriaValueHandlingMode) {
244+
@Override
245+
public ValueHandlingMode setCriteriaValueHandlingMode(ValueHandlingMode criteriaValueHandlingMode) {
246+
ValueHandlingMode current = this.criteriaValueHandlingMode;
245247
this.criteriaValueHandlingMode = criteriaValueHandlingMode;
248+
return current;
246249
}
247250

248251
@Override

0 commit comments

Comments
 (0)