From 4b2481d3eafda96710410179782bc8ee88fde436 Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Fri, 23 Jun 2017 23:20:17 +1200 Subject: [PATCH] #1039 Fix for - reset of dirty flag on L2 cached entities after lazy load --- .../io/ebeaninternal/server/query/SqlTreeNodeBean.java | 8 ++++++++ .../io/ebeaninternal/server/query/SqlTreeNodeRoot.java | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java b/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java index 534004a3f..8b430e16d 100644 --- a/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java +++ b/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java @@ -135,6 +135,10 @@ class SqlTreeNodeBean implements SqlTreeNode { pathMap = createPathMap(prefix, desc); } + protected boolean isRoot() { + return false; + } + @Override public ScalarType getSingleAttributeScalarType() { if (properties == null || properties.length == 0) { @@ -316,6 +320,10 @@ class SqlTreeNodeBean implements SqlTreeNode { aChildren.load(ctx, localBean, contextBean); } + if (queryMode.equals(Mode.LAZYLOAD_MANY) && isRoot()) { + return contextBean; + } + if (!lazyLoadMany && localBean != null) { ctx.setCurrentPrefix(prefix, pathMap); if (readId && !temporalVersions) { diff --git a/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeRoot.java b/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeRoot.java index 1d84ba8ac..b956115b6 100644 --- a/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeRoot.java +++ b/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeRoot.java @@ -25,6 +25,11 @@ final class SqlTreeNodeRoot extends SqlTreeNodeBean { this.includeJoin = includeJoin; } + @Override + protected boolean isRoot() { + return true; + } + /** * Append the property columns to the buffer. */