diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstWalker.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstWalker.java index 6c75f437f9..bcd34df9b0 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstWalker.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstWalker.java @@ -434,7 +434,12 @@ public class AbstractSqlAstWalker implements SqlAstWalker { @Override public void visitTableGroupJoin(TableGroupJoin tableGroupJoin) { - tableGroupJoin.getJoinedGroup().accept( this ); + final TableGroup joinedGroup = tableGroupJoin.getJoinedGroup(); + if ( joinedGroup.isInitialized() ) { + // Only process already initialized table groups to avoid + // forced initialization of joined lazy table groups + joinedGroup.accept( this ); + } if ( tableGroupJoin.getPredicate() != null ) { tableGroupJoin.getPredicate().accept( this ); }