From 276e865f72b5ef694116fc15e60ed8f4fbaa2b0e Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Tue, 12 Mar 2019 14:49:00 +1300 Subject: [PATCH] #1647 - Change ServerConfig.updateAllPropertiesInBatch to default to false --- pom.xml | 2 +- .../java/io/ebean/config/ServerConfig.java | 2 +- .../album/DeleteById_SoftDelete_Tests.java | 102 +++++++----------- .../o2m/jointable/TestOneToManyJoinTable.java | 23 ++-- 4 files changed, 53 insertions(+), 76 deletions(-) diff --git a/pom.xml b/pom.xml index f6754546e..fdaa845e8 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean - 11.35.4-SNAPSHOT + 11.36.1-SNAPSHOT jar ebean diff --git a/src/main/java/io/ebean/config/ServerConfig.java b/src/main/java/io/ebean/config/ServerConfig.java index 69ba64f2c..f9a9e3d7d 100644 --- a/src/main/java/io/ebean/config/ServerConfig.java +++ b/src/main/java/io/ebean/config/ServerConfig.java @@ -350,7 +350,7 @@ public class ServerConfig { /** * Behaviour of updates in JDBC batch to by default include all properties. */ - private boolean updateAllPropertiesInBatch = true; + private boolean updateAllPropertiesInBatch; /** * Default behaviour for updates when cascade save on a O2M or M2M to delete any missing children. diff --git a/src/test/java/org/tests/model/onetoone/album/DeleteById_SoftDelete_Tests.java b/src/test/java/org/tests/model/onetoone/album/DeleteById_SoftDelete_Tests.java index b22d92340..8f71abd42 100644 --- a/src/test/java/org/tests/model/onetoone/album/DeleteById_SoftDelete_Tests.java +++ b/src/test/java/org/tests/model/onetoone/album/DeleteById_SoftDelete_Tests.java @@ -1,8 +1,7 @@ package org.tests.model.onetoone.album; import io.ebean.BaseTestCase; -import io.ebean.Ebean; -import io.ebean.EbeanServer; +import io.ebean.DB; import io.ebean.Transaction; import org.ebeantest.LoggedSqlCollector; import org.junit.Test; @@ -24,7 +23,7 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { LoggedSqlCollector.start(); - Ebean.delete(Cover.class, cover.getId()); + DB.delete(Cover.class, cover.getId()); List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(1); @@ -43,12 +42,12 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { Cover cover = new Cover("b1"); cover.save(); - Ebean.delete(Cover.class, cover.getId()); + DB.delete(Cover.class, cover.getId()); - Cover findWhenSoft = Ebean.find(Cover.class, cover.getId()); + Cover findWhenSoft = DB.find(Cover.class, cover.getId()); assertNull(findWhenSoft); - Cover cover1 = Ebean.find(Cover.class) + Cover cover1 = DB.find(Cover.class) .setIncludeSoftDeletes() .setId(cover.getId()) .findOne(); @@ -63,7 +62,7 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { assertThat(sql).hasSize(1); assertThat(sql.get(0)).contains("update cover set deleted=? where id=?; -- bind(false"); - Cover findAgain = Ebean.find(Cover.class, cover.getId()); + Cover findAgain = DB.find(Cover.class, cover.getId()); assertNotNull(findAgain); cover.deletePermanent(); @@ -77,7 +76,7 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { LoggedSqlCollector.start(); - Ebean.getDefaultServer().delete(Cover.class, cover.getId(), null); + DB.getDefault().delete(Cover.class, cover.getId(), null); List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(1); @@ -97,7 +96,7 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { LoggedSqlCollector.start(); - Ebean.getDefaultServer().deletePermanent(Cover.class, cover.getId(), null); + DB.getDefault().deletePermanent(Cover.class, cover.getId(), null); List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(1); @@ -107,13 +106,12 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { @Test public void deleteAllById_when_softDelete() { - EbeanServer server = Ebean.getDefaultServer(); List beans = beans(2); - server.saveAll(beans); + DB.saveAll(beans); LoggedSqlCollector.start(); - server.deleteAll(Cover.class, ids(beans)); + DB.deleteAll(Cover.class, ids(beans)); List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(1); @@ -127,18 +125,14 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { @Test public void deleteAllById_when_softDelete_withTransaction() { - EbeanServer server = Ebean.getDefaultServer(); List beans = beans(2); - server.saveAll(beans); + DB.saveAll(beans); LoggedSqlCollector.start(); - Transaction transaction = server.beginTransaction(); - try { - server.deleteAll(Cover.class, ids(beans), transaction); - server.commitTransaction(); - } finally { - server.endTransaction(); + try (Transaction transaction = DB.beginTransaction()) { + DB.getDefault().deleteAll(Cover.class, ids(beans), transaction); + transaction.commit(); } List sql = LoggedSqlCollector.stop(); @@ -154,11 +148,11 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { public void ebean_deleteAllPermanentById_when_softDelete() { List beans = beans(2); - Ebean.saveAll(beans); + DB.saveAll(beans); LoggedSqlCollector.start(); - Ebean.deleteAllPermanent(Cover.class, ids(beans)); + DB.deleteAllPermanent(Cover.class, ids(beans)); List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(1); @@ -168,13 +162,12 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { @Test public void deleteAllPermanentById_when_softDelete() { - EbeanServer server = Ebean.getDefaultServer(); List beans = beans(2); - server.saveAll(beans); + DB.saveAll(beans); LoggedSqlCollector.start(); - server.deleteAllPermanent(Cover.class, ids(beans)); + DB.deleteAllPermanent(Cover.class, ids(beans)); List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(1); @@ -185,18 +178,14 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { @Test public void deleteAllPermanentById_when_softDelete_withTransaction() { - EbeanServer server = Ebean.getDefaultServer(); List beans = beans(2); - server.saveAll(beans); + DB.saveAll(beans); LoggedSqlCollector.start(); - Transaction transaction = server.beginTransaction(); - try { - server.deleteAllPermanent(Cover.class, ids(beans), transaction); - server.commitTransaction(); - } finally { - server.endTransaction(); + try (Transaction transaction = DB.beginTransaction()) { + DB.getDefault().deleteAllPermanent(Cover.class, ids(beans), transaction); + transaction.commit(); } List sql = LoggedSqlCollector.stop(); @@ -208,18 +197,17 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { public void ebean_deleteAll_when_softDelete() { List beans = beans(2); - Ebean.saveAll(beans); + DB.saveAll(beans); LoggedSqlCollector.start(); - Ebean.deleteAll(beans); + DB.deleteAll(beans); List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(3); if (isPersistBatchOnCascade()) { - assertThat(sql.get(0)).contains("update cover set s3_url=?, deleted=? where id=?"); - } - else { + assertThat(sql.get(0)).contains("update cover set deleted=? where id=?"); + } else { assertThat(sql.get(0)).contains("update cover set deleted=? where id=?"); } } @@ -227,18 +215,17 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { @Test public void deleteAll_when_softDelete() { - EbeanServer server = Ebean.getDefaultServer(); List beans = beans(2); - server.saveAll(beans); + DB.saveAll(beans); LoggedSqlCollector.start(); - server.deleteAll(beans); + DB.deleteAll(beans); List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(3); if (isPersistBatchOnCascade()) { - assertThat(sql.get(0)).contains("update cover set s3_url=?, deleted=? where id=?"); + assertThat(sql.get(0)).contains("update cover set deleted=? where id=?"); } else { assertThat(sql.get(0)).contains("update cover set deleted=? where id=?"); @@ -248,24 +235,20 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { @Test public void deleteAll_when_softDelete_withTransaction() { - EbeanServer server = Ebean.getDefaultServer(); List beans = beans(2); - server.saveAll(beans); + DB.saveAll(beans); LoggedSqlCollector.start(); - Transaction transaction = server.beginTransaction(); - try { - server.deleteAll(beans, transaction); - server.commitTransaction(); - } finally { - server.endTransaction(); + try (Transaction transaction = DB.beginTransaction()) { + DB.getDefault().deleteAll(beans, transaction); + transaction.commit(); } List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(3); if (isPersistBatchOnCascade()) { - assertThat(sql.get(0)).contains("update cover set s3_url=?, deleted=? where id=?"); + assertThat(sql.get(0)).contains("update cover set deleted=? where id=?"); } else { assertThat(sql.get(0)).contains("update cover set deleted=? where id=?"); @@ -275,13 +258,12 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { @Test public void deleteAllPermanent_when_softDelete() { - EbeanServer server = Ebean.getDefaultServer(); List beans = beans(2); - server.saveAll(beans); + DB.saveAll(beans); LoggedSqlCollector.start(); - server.deleteAllPermanent(beans); + DB.deleteAllPermanent(beans); List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(3); @@ -291,18 +273,14 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { @Test public void deleteAllPermanent_when_softDelete_withTransaction() { - EbeanServer server = Ebean.getDefaultServer(); List beans = beans(2); - server.saveAll(beans); + DB.saveAll(beans); LoggedSqlCollector.start(); - Transaction transaction = server.beginTransaction(); - try { - server.deleteAllPermanent(beans, transaction); - server.commitTransaction(); - } finally { - server.endTransaction(); + try (Transaction transaction = DB.beginTransaction()) { + DB.getDefault().deleteAllPermanent(beans, transaction); + transaction.commit(); } List sql = LoggedSqlCollector.stop(); diff --git a/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTable.java b/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTable.java index bf42893b3..487a2a80d 100644 --- a/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTable.java +++ b/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTable.java @@ -1,7 +1,7 @@ package org.tests.o2m.jointable; import io.ebean.BaseTestCase; -import io.ebean.Ebean; +import io.ebean.DB; import org.ebeantest.LoggedSqlCollector; import org.junit.Test; @@ -19,7 +19,7 @@ public class TestOneToManyJoinTable extends BaseTestCase { private JtMonkey m2 = new JtMonkey("Uim"); private void initialInsert() { - Ebean.saveAll(Arrays.asList(troop, m0, m1, m2)); + DB.saveAll(Arrays.asList(troop, m0, m1, m2)); } @Test @@ -34,7 +34,7 @@ public class TestOneToManyJoinTable extends BaseTestCase { troop.getMonkeys().add(m0); troop.getMonkeys().add(m1); - Ebean.save(troop); + DB.save(troop); List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { @@ -48,14 +48,14 @@ public class TestOneToManyJoinTable extends BaseTestCase { assertThat(sql.get(1)).contains("insert into troop_monkey (troop_pid, monkey_mid) values (?, ?)"); } - long intersectionRows = Ebean.createSqlQuery("select count(*) as total from troop_monkey where troop_pid = ?") + long intersectionRows = DB.sqlQuery("select count(*) as total from troop_monkey where troop_pid = ?") .setParameter(1, troop.getPid()) .findSingleLong(); assertThat(intersectionRows).isEqualTo(2L); LoggedSqlCollector.current(); - JtTroop fetchTroop = Ebean.find(JtTroop.class) + JtTroop fetchTroop = DB.find(JtTroop.class) .fetch("monkeys") .where().idEq(troop.getPid()) .findOne(); @@ -67,7 +67,7 @@ public class TestOneToManyJoinTable extends BaseTestCase { assertThat(trimSql(sql.get(0))).contains("from troop t0 left join troop_monkey t1z_ on t1z_.troop_pid = t0.pid left join monkey t1 on t1.mid = t1z_.monkey_mid where t0.pid = ?"); assertThat(trimSql(sql.get(0))).contains("select t0.pid, t0.name, t0.version, t1.mid, t1.name, t1.food_preference, t1.version"); - Ebean.delete(troop); + DB.delete(troop); sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(2); @@ -85,23 +85,22 @@ public class TestOneToManyJoinTable extends BaseTestCase { // make m2 dirty ... cascades to an update on Uim m2.setFoodPreference("Apple"); trainer.getMonkeys().add(m2); - trainer.getMonkeys().add(Ebean.getReference(JtMonkey.class, m1.getMid())); + trainer.getMonkeys().add(DB.getReference(JtMonkey.class, m1.getMid())); trainer.getMonkeys().add(new JtMonkey("FAlp")); trainer.getMonkeys().add(new JtMonkey("FBet")); trainer.getMonkeys().add(new JtMonkey("FThe")); LoggedSqlCollector.start(); - Ebean.save(trainer); + DB.save(trainer); List sql = LoggedSqlCollector.current(); - //Collections.sort(sql); if (isPersistBatchOnCascade()) { assertThat(sql).hasSize(13); assertThat(sql.get(0)).contains("insert into trainer "); assertThat(sql.get(1)).contains("insert into monkey "); assertSqlBind(sql, 2, 4); - assertThat(sql.get(5)).contains("update monkey set name=?, food_preference=?, version=? where mid=? and version=?"); + assertThat(sql.get(5)).contains("update monkey set food_preference=?, version=? where mid=? and version=?"); assertThat(sql.get(6)).contains("-- bind("); assertThat(sql.get(7)).contains("insert into trainer_monkey "); assertSqlBind(sql, 8, 12); @@ -116,7 +115,7 @@ public class TestOneToManyJoinTable extends BaseTestCase { } - int intersectionRows = Ebean.createSqlQuery("select count(*) as total from trainer_monkey where trainer_tid = ?") + int intersectionRows = DB.sqlQuery("select count(*) as total from trainer_monkey where trainer_tid = ?") .setParameter(1, trainer.getTid()) .findOne() .getInteger("total"); @@ -125,7 +124,7 @@ public class TestOneToManyJoinTable extends BaseTestCase { LoggedSqlCollector.current(); - Ebean.delete(trainer); + DB.delete(trainer); sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(2);