From 2a00a491237abfc310ee89fa2550ec3b014acc74 Mon Sep 17 00:00:00 2001 From: Andrea Boriero Date: Mon, 18 Sep 2023 14:33:30 +0200 Subject: [PATCH] HHH-17221 AssertionError initializing a collection with FetchMode.SUBSELECT and IdClass having only one field --- .../hibernate/loader/ast/internal/LoaderSelectBuilder.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderSelectBuilder.java b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderSelectBuilder.java index c6801a6d8e..aff4a8566c 100644 --- a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderSelectBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderSelectBuilder.java @@ -1148,8 +1148,7 @@ private void applySubSelectRestriction( final Expression fkExpression; - final int jdbcTypeCount = fkDescriptor.getJdbcTypeCount(); - if ( jdbcTypeCount == 1 ) { + if ( !fkDescriptor.isEmbedded() ) { assert fkDescriptor instanceof SimpleForeignKeyDescriptor; final SimpleForeignKeyDescriptor simpleFkDescriptor = (SimpleForeignKeyDescriptor) fkDescriptor; final TableReference tableReference = rootTableGroup.resolveTableReference( @@ -1163,7 +1162,7 @@ private void applySubSelectRestriction( ); } else { - final List columnReferences = new ArrayList<>( jdbcTypeCount ); + final List columnReferences = new ArrayList<>( fkDescriptor.getJdbcTypeCount() ); fkDescriptor.forEachSelectable( (columnIndex, selection) -> { final TableReference tableReference = rootTableGroup.resolveTableReference(