Skip to content

Commit d6db5e0

Browse files
committed
HHH-19314 Fix fetch clause expression value retrieval
1 parent 04a313d commit d6db5e0

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstTranslator.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@
189189
import org.hibernate.sql.exec.internal.AbstractJdbcParameter;
190190
import org.hibernate.sql.exec.internal.JdbcOperationQueryInsertImpl;
191191
import org.hibernate.sql.exec.internal.JdbcParameterBindingImpl;
192+
import org.hibernate.sql.exec.internal.JdbcParameterImpl;
192193
import org.hibernate.sql.exec.internal.JdbcParametersImpl;
193194
import org.hibernate.sql.exec.internal.SqlTypedMappingJdbcParameter;
194195
import org.hibernate.sql.exec.spi.ExecutionContext;
@@ -6742,9 +6743,16 @@ private int getSortSelectionIndex(QuerySpec querySpec, SortSpecification sortSpe
67426743

67436744
private boolean isFetchFirstRowOnly(QueryPart queryPart) {
67446745
return queryPart.getFetchClauseType() == FetchClauseType.ROWS_ONLY
6745-
&& queryPart.getFetchClauseExpression() instanceof QueryLiteral<?>
6746-
&& Integer.valueOf( 1 )
6747-
.equals( ( (QueryLiteral<?>) queryPart.getFetchClauseExpression() ).getLiteralValue() );
6746+
&& Integer.valueOf( 1 ).equals( getLiteralValue( queryPart.getFetchClauseExpression() ) );
6747+
}
6748+
6749+
private boolean isParameterValueEqualToOne(SqmParameterInterpretation sqmParameterInterpretation) {
6750+
if ( sqmParameterInterpretation.getResolvedExpression() instanceof JdbcParameterImpl jdbcParameter ) {
6751+
assert jdbcParameterBindings != null;
6752+
final JdbcParameterBinding binding = jdbcParameterBindings.getBinding( jdbcParameter );
6753+
return binding != null && Integer.valueOf( 1 ).equals( binding.getBindValue() );
6754+
}
6755+
return false;
67486756
}
67496757

67506758
private SelectStatement stripToSelectClause(SelectStatement statement) {

0 commit comments

Comments
 (0)