diff --git a/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java b/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java index 28ac8a8e7..2effe73d9 100644 --- a/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java +++ b/ebean-api/src/main/java/io/ebean/bean/EntityBeanIntercept.java @@ -360,7 +360,7 @@ public final class EntityBeanIntercept implements Serializable { * Return true if the entity should be updated. */ public boolean isUpdate() { - return forceUpdate || state == STATE_LOADED; + return forceUpdate || state == STATE_LOADED || state == STATE_REFERENCE; } /** diff --git a/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java b/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java index 5347e404e..e4875af11 100644 --- a/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java +++ b/ebean-test/src/test/java/org/tests/model/onetoone/TestOneToOneCascadeSave.java @@ -34,7 +34,7 @@ public class TestOneToOneCascadeSave extends BaseTestCase { } @Test - public void test2() { + public void testSaveCascadeWithOneToOne() { OtoMasterVersion master = new OtoMasterVersion(); master.setName("m1"); @@ -59,12 +59,12 @@ public class TestOneToOneCascadeSave extends BaseTestCase { master.setName("m2"); DB.save(master); child = DB.find(OtoChildVersion.class).findOne(); - // assertThat(child.getVersion()).isEqualTo(2); but is 1 + assertThat(child.getVersion()).isEqualTo(2); child.setName("c3"); - DB.save(child); // <-- throws OptimisticLockException + DB.save(child); txn.commit(); } } - + }