diff --git a/src/main/java/com/avaje/ebeaninternal/server/query/SqlTreeNodeBean.java b/src/main/java/com/avaje/ebeaninternal/server/query/SqlTreeNodeBean.java index b64dacb58..436388776 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/query/SqlTreeNodeBean.java +++ b/src/main/java/com/avaje/ebeaninternal/server/query/SqlTreeNodeBean.java @@ -232,6 +232,7 @@ public class SqlTreeNodeBean implements SqlTreeNode { PersistenceContext persistenceContext = (!readId || temporalVersions) ? null : ctx.getPersistenceContext(); + boolean newBean = false; if (readId) { Object id = localIdBinder.readSet(ctx, localBean); if (id == null) { @@ -242,6 +243,7 @@ public class SqlTreeNodeBean implements SqlTreeNode { contextBean = (EntityBean) persistenceContext.putIfAbsent(id, localBean); if (contextBean == null) { // bean just added to the persistenceContext + newBean = true; contextBean = localBean; } else { // bean already exists in persistenceContext @@ -345,7 +347,7 @@ public class SqlTreeNodeBean implements SqlTreeNode { return localBean; } else { - if (lazyLoadParentId != null) { + if (lazyLoadParentId != null && newBean) { ctx.setLazyLoadedChildBean(contextBean, lazyLoadParentId); } return contextBean;