Skip to content

Commit 2c774a0

Browse files
committed
HHH-19868 RowTransformerConstructorImpl throws NullPointerException when TupleMetadata is null
1 parent 112dbbc commit 2c774a0

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ protected TupleMetadata buildTupleMetadata(SqmStatement<?> statement, Class<R> r
316316
if ( statement instanceof SqmSelectStatement<?> select ) {
317317
final var selections =
318318
select.getQueryPart().getFirstQuerySpec().getSelectClause().getSelections();
319-
return isTupleMetadataRequired( resultType, selections.get(0) )
319+
return selections.size() > 1 || isTupleMetadataRequired( resultType, selections.get(0) )
320320
? getTupleMetadata( selections )
321321
: null;
322322
}

hibernate-core/src/main/java/org/hibernate/sql/results/internal/RowTransformerConstructorImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import jakarta.persistence.TupleElement;
88
import org.hibernate.InstantiationException;
9+
import org.hibernate.query.QueryTypeMismatchException;
910
import org.hibernate.sql.results.spi.RowTransformer;
1011

1112
import java.lang.reflect.Constructor;
@@ -32,6 +33,7 @@ public RowTransformerConstructorImpl(
3233
TupleMetadata tupleMetadata,
3334
TypeConfiguration typeConfiguration) {
3435
this.type = type;
36+
assert tupleMetadata != null : "TupleMetadata must not be null";
3537
final List<TupleElement<?>> elements = tupleMetadata.getList();
3638
final List<Class<?>> argumentTypes = elements.stream()
3739
.map( RowTransformerConstructorImpl::resolveElementJavaType )

0 commit comments

Comments
 (0)