Skip to content

Commit de46df9

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

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

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

+12-3
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,17 @@ 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+
&& queryPart.getFetchClauseExpression() != null
6747+
&& Integer.valueOf( 1 ).equals( getLiteralValue( queryPart.getFetchClauseExpression() ) );
6748+
}
6749+
6750+
private boolean isParameterValueEqualToOne(SqmParameterInterpretation sqmParameterInterpretation) {
6751+
if ( sqmParameterInterpretation.getResolvedExpression() instanceof JdbcParameterImpl jdbcParameter ) {
6752+
assert jdbcParameterBindings != null;
6753+
final JdbcParameterBinding binding = jdbcParameterBindings.getBinding( jdbcParameter );
6754+
return binding != null && Integer.valueOf( 1 ).equals( binding.getBindValue() );
6755+
}
6756+
return false;
67486757
}
67496758

67506759
private SelectStatement stripToSelectClause(SelectStatement statement) {

0 commit comments

Comments
 (0)