From 8b4ef7c66c814d13bf81c6d1d31c8cf60c64c451 Mon Sep 17 00:00:00 2001 From: Marco Belladelli Date: Wed, 4 Oct 2023 11:35:46 +0200 Subject: [PATCH] HHH-17193 Create id initializers when containing nested collections --- .../graph/entity/AbstractEntityResultGraphNode.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/AbstractEntityResultGraphNode.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/AbstractEntityResultGraphNode.java index 42aba468c3..9621a28529 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/AbstractEntityResultGraphNode.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/AbstractEntityResultGraphNode.java @@ -43,12 +43,13 @@ public void afterInitialize(FetchParent fetchParent, DomainResultCreationState c final TableGroup entityTableGroup = creationState.getSqlAstCreationState().getFromClauseAccess() .getTableGroup( navigablePath ); final EntityResultGraphNode entityResultGraphNode = (EntityResultGraphNode) fetchParent; - if ( navigablePath.getParent() == null && !creationState.forceIdentifierSelection() ) { + final Fetch fetch = creationState.visitIdentifierFetch( entityResultGraphNode ); + if ( navigablePath.getParent() == null && !creationState.forceIdentifierSelection() && + ( !( fetch instanceof FetchParent ) || !( (FetchParent) fetch ).containsCollectionFetches() ) ) { identifierFetch = null; - creationState.visitIdentifierFetch( entityResultGraphNode ); } else { - identifierFetch = creationState.visitIdentifierFetch( entityResultGraphNode ); + identifierFetch = fetch; } discriminatorFetch = creationState.visitDiscriminatorFetch( entityResultGraphNode );