From 62aca1e77bf65bc7ad3cf3651024f27a24d73a3c Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Fri, 12 Feb 2016 23:33:17 +1300 Subject: [PATCH] #462 - When fetching, collections can get populated with too many entities - Fix --- .../com/avaje/ebeaninternal/server/query/SqlTreeNodeBean.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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;