From 2caeafaaa272c2671f026ba29f6977b7e227cfa4 Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Tue, 15 Dec 2015 14:38:39 +1300 Subject: [PATCH] #498 - @Draftable - lazy loading after stateless update results in - EntityNotFoundException: Bean not found during lazy load or refresh --- .../ebeaninternal/server/core/DefaultBeanLoader.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultBeanLoader.java b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultBeanLoader.java index 3482f61ec..3ef642c39 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultBeanLoader.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultBeanLoader.java @@ -401,8 +401,10 @@ public class DefaultBeanLoader { ebi.setPersistenceContext(pc); } + boolean draft = desc.isDraftInstance(bean); + if (embeddedOwnerIndex == -1) { - if (SpiQuery.Mode.LAZYLOAD_BEAN.equals(mode) && desc.isBeanCaching()) { + if (!draft && SpiQuery.Mode.LAZYLOAD_BEAN.equals(mode) && desc.isBeanCaching()) { // lazy loading and the bean cache is active if (desc.cacheBeanLoad(bean, ebi, id)) { return; @@ -415,10 +417,12 @@ public class DefaultBeanLoader { SpiQuery query = (SpiQuery) server.createQuery(desc.getBeanType()); query.setLazyLoadProperty(ebi.getLazyLoadProperty()); + if (draft) { + query.asDraft(); + } if (embeddedOwnerIndex > -1) { - String embeddedBeanPropertyName = ebi.getProperty(embeddedOwnerIndex); - query.select("id," + embeddedBeanPropertyName); + query.select("id," + ebi.getProperty(embeddedOwnerIndex)); } // don't collect AutoTune usage profiling information