Skip to content

Commit bb5c07e

Browse files
dreab8beikov
authored andcommitted
HHH-19314 Fix fetch clause expression value retrieval
1 parent 0d2d2a8 commit bb5c07e

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

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

Lines changed: 7 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;
@@ -6853,9 +6854,12 @@ private int getSortSelectionIndex(QuerySpec querySpec, SortSpecification sortSpe
68536854

68546855
private boolean isFetchFirstRowOnly(QueryPart queryPart) {
68556856
return queryPart.getFetchClauseType() == FetchClauseType.ROWS_ONLY
6856-
&& queryPart.getFetchClauseExpression() instanceof QueryLiteral<?>
6857-
&& Integer.valueOf( 1 )
6858-
.equals( ( (QueryLiteral<?>) queryPart.getFetchClauseExpression() ).getLiteralValue() );
6857+
&& queryPart.getFetchClauseExpression() != null
6858+
&& Integer.valueOf( 1 ).equals( getLiteralValue( queryPart.getFetchClauseExpression() ) );
6859+
}
6860+
6861+
public <X> X getLiteralValue(Expression expression) {
6862+
return interpretExpression( expression, jdbcParameterBindings );
68596863
}
68606864

68616865
private SelectStatement stripToSelectClause(SelectStatement statement) {

0 commit comments

Comments
 (0)