diff --git a/ebean-core/src/test/java/org/tests/model/json/EBasicPlain.java b/ebean-core/src/test/java/org/tests/model/json/EBasicPlain.java index f3705aa16..401e66fa1 100644 --- a/ebean-core/src/test/java/org/tests/model/json/EBasicPlain.java +++ b/ebean-core/src/test/java/org/tests/model/json/EBasicPlain.java @@ -17,6 +17,9 @@ public class EBasicPlain { @DbJson(length = 500) PlainBean plainBean; + @DbJson(length = 500, dirtyDetection = false) + PlainBean plainBean2; + @Version long version; @@ -44,6 +47,14 @@ public class EBasicPlain { this.plainBean = plainBean; } + public PlainBean getPlainBean2() { + return plainBean2; + } + + public void setPlainBean2(PlainBean plainBean2) { + this.plainBean2 = plainBean2; + } + public long getVersion() { return version; } diff --git a/ebean-core/src/test/java/org/tests/model/json/TestJacksonPlainBean.java b/ebean-core/src/test/java/org/tests/model/json/TestJacksonPlainBean.java index 0e3d22aa7..f77f2f8b6 100644 --- a/ebean-core/src/test/java/org/tests/model/json/TestJacksonPlainBean.java +++ b/ebean-core/src/test/java/org/tests/model/json/TestJacksonPlainBean.java @@ -16,25 +16,20 @@ public class TestJacksonPlainBean { DB.getDefault(); LoggedSqlCollector.start(); - PlainBean content = new PlainBean(); - content.setAlong(42); - content.setName("foo"); - + PlainBean content = new PlainBean("foo", 42); EBasicPlain bean = new EBasicPlain(); bean.setAttr("attr0"); bean.setPlainBean(content); - + bean.setPlainBean2(new PlainBean("bar", 27)); DB.save(bean); - expectedSql(0, "insert into ebasic_plain (attr, plain_bean, version) values (?,?,?)"); - + expectedSql(0, "insert into ebasic_plain (attr, plain_bean, plain_bean2, version) values (?,?,?,?)"); // inserted plainBean has not been mutated bean.setAttr("attr1"); DB.save(bean); expectedSql(0, "update ebasic_plain set attr=?, version=? where id=? and version=?"); - // inserted plainBean has now been mutated content.setName("notFoo"); bean.setAttr("attr2"); @@ -50,17 +45,24 @@ public class TestJacksonPlainBean { DB.save(found); expectedSql(1, "update ebasic_plain set plain_bean=?, version=? where id=? and version=?"); - - // update bean, mutate PlainBean only + // dirtyDetection = false, so not included in update + found.getPlainBean2().setName("Modification Ignored"); + // dirtyDetection = true, mutation detected plainBean.setName("mod2"); DB.save(found); expectedSql(0, "update ebasic_plain set plain_bean=?, version=? where id=? and version=?"); - // update bean, not mutating PlainBean found.setAttr("attr3"); DB.save(found); - expectedSql(LoggedSqlCollector.stop(), 0, "update ebasic_plain set attr=?, version=? where id=? and version=?"); + expectedSql(0, "update ebasic_plain set attr=?, version=? where id=? and version=?"); + + // dirtyDetection = false, set a new plainBean2 instance, included in update + found.setPlainBean2(new PlainBean("bar", 27)); + DB.save(found); + expectedSql( 0, "update ebasic_plain set plain_bean2=?, version=? where id=? and version=?"); + + LoggedSqlCollector.stop(); } private void expectedSql(int i, String s) {