diff --git a/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadBeanContext.java b/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadBeanContext.java index 3e16cadf2..f591337c7 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadBeanContext.java +++ b/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadBeanContext.java @@ -54,10 +54,12 @@ public class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContex query.asOf(parent.getAsOf()); query.setParentNode(objectGraphNode); query.setLazyLoadProperty(lazyLoadProperty); + if (parent.isAsDraft()) { + query.asDraft(); + } if (parent.isDisableReadAudit()) { query.setDisableReadAuditing(); } - if (queryProps != null) { queryProps.configureBeanQuery(query); } diff --git a/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadContext.java b/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadContext.java index 36805c2b6..99b563d14 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadContext.java +++ b/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadContext.java @@ -36,6 +36,7 @@ public class DLoadContext implements LoadContext { private final DLoadBeanContext rootBeanContext; + private final boolean asDraft; private final Timestamp asOf; private final Boolean readOnly; private final boolean excludeBeanCache; @@ -65,6 +66,7 @@ public class DLoadContext implements LoadContext { SpiQuery query = request.getQuery(); this.asOf = query.getAsOf(); + this.asDraft = query.isAsDraft(); this.readOnly = query.isReadOnly(); this.disableReadAudit = query.isDisableReadAudit(); this.disableLazyLoading = query.isDisableLazyLoading(); @@ -230,6 +232,13 @@ public class DLoadContext implements LoadContext { return asOf; } + /** + * Return true if the root query is a 'asDraft' query that should propagate to secondary queries. + */ + protected boolean isAsDraft() { + return asDraft; + } + /** * Return true if disable read auditing should propagate to secondary queries. */ diff --git a/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadManyContext.java b/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadManyContext.java index c6d286e78..6e5f8a763 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadManyContext.java +++ b/src/main/java/com/avaje/ebeaninternal/server/loadcontext/DLoadManyContext.java @@ -65,14 +65,15 @@ public class DLoadManyContext extends DLoadBaseContext implements LoadManyContex query.setDisableLazyLoading(parent.isDisableLazyLoading()); query.asOf(parent.getAsOf()); query.setParentNode(objectGraphNode); + if (parent.isAsDraft()) { + query.asDraft(); + } if (parent.isDisableReadAudit()) { query.setDisableReadAuditing(); } - if (queryProps != null) { queryProps.configureBeanQuery(query); } - if (parent.isUseAutoTune()) { query.setAutoTune(true); }