Skip to content

Commit e9cb6db

Browse files
dreab8beikov
authored andcommitted
HHH-19314 Fix fetch clause expression value retrieval
1 parent e8747cb commit e9cb6db

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

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@
190190
import org.hibernate.sql.exec.internal.AbstractJdbcParameter;
191191
import org.hibernate.sql.exec.internal.JdbcOperationQueryInsertImpl;
192192
import org.hibernate.sql.exec.internal.JdbcParameterBindingImpl;
193+
import org.hibernate.sql.exec.internal.JdbcParameterImpl;
193194
import org.hibernate.sql.exec.internal.JdbcParametersImpl;
194195
import org.hibernate.sql.exec.internal.SqlTypedMappingJdbcParameter;
195196
import org.hibernate.sql.exec.spi.ExecutionContext;
@@ -6677,9 +6678,17 @@ private int getSortSelectionIndex(QuerySpec querySpec, SortSpecification sortSpe
66776678

66786679
private boolean isFetchFirstRowOnly(QueryPart queryPart) {
66796680
return queryPart.getFetchClauseType() == FetchClauseType.ROWS_ONLY
6680-
&& queryPart.getFetchClauseExpression() instanceof QueryLiteral<?>
6681-
&& Integer.valueOf( 1 )
6682-
.equals( ( (QueryLiteral<?>) queryPart.getFetchClauseExpression() ).getLiteralValue() );
6681+
&& queryPart.getFetchClauseExpression() != null
6682+
&& Integer.valueOf( 1 ).equals( getLiteralValue( queryPart.getFetchClauseExpression() ) );
6683+
}
6684+
6685+
private boolean isParameterValueEqualToOne(SqmParameterInterpretation sqmParameterInterpretation) {
6686+
if ( sqmParameterInterpretation.getResolvedExpression() instanceof JdbcParameterImpl jdbcParameter ) {
6687+
assert jdbcParameterBindings != null;
6688+
final JdbcParameterBinding binding = jdbcParameterBindings.getBinding( jdbcParameter );
6689+
return binding != null && Integer.valueOf( 1 ).equals( binding.getBindValue() );
6690+
}
6691+
return false;
66836692
}
66846693

66856694
private SelectStatement stripToSelectClause(SelectStatement statement) {

0 commit comments

Comments
 (0)