diff --git a/src/main/java/com/avaje/ebean/BeanState.java b/src/main/java/com/avaje/ebean/BeanState.java index 78017fb03..51e54d940 100644 --- a/src/main/java/com/avaje/ebean/BeanState.java +++ b/src/main/java/com/avaje/ebean/BeanState.java @@ -33,6 +33,11 @@ public interface BeanState { */ boolean isDirty(); + /** + * This can be called with true to disable lazy loading on the bean. + */ + void setDisableLazyLoad(boolean disableLazyLoading); + /** * For partially populated beans returns the properties that are loaded on the * bean. diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultBeanState.java b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultBeanState.java index cf409ca2c..daa516599 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultBeanState.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultBeanState.java @@ -70,5 +70,9 @@ public class DefaultBeanState implements BeanState { public void setLoaded() { intercept.setLoaded(); } - + + @Override + public void setDisableLazyLoad(boolean disableLazyLoading) { + intercept.setDisableLazyLoad(disableLazyLoading); + } } diff --git a/src/test/java/com/avaje/tests/batchload/TestLoadOnDirty.java b/src/test/java/com/avaje/tests/batchload/TestLoadOnDirty.java index d008701db..9d4a95dc2 100644 --- a/src/test/java/com/avaje/tests/batchload/TestLoadOnDirty.java +++ b/src/test/java/com/avaje/tests/batchload/TestLoadOnDirty.java @@ -43,4 +43,22 @@ public class TestLoadOnDirty extends BaseTestCase { Assert.assertEquals(2, beanState.getChangedProps().size()); } + + @Test + public void testDisableLazyLoad() { + + ResetBasicData.reset(); + + List custs = Ebean.find(Customer.class).order("id").findList(); + + Customer customer = Ebean.find(Customer.class) + .setId(custs.get(0).getId()) + .select("id") + .setUseCache(false) + .findUnique(); + + BeanState beanState = Ebean.getBeanState(customer); + beanState.setDisableLazyLoad(true); + Assert.assertNull(customer.getName()); + } }