diff --git a/src/main/java/io/ebeaninternal/server/persist/BatchControl.java b/src/main/java/io/ebeaninternal/server/persist/BatchControl.java index 705e6807b..1658d664e 100644 --- a/src/main/java/io/ebeaninternal/server/persist/BatchControl.java +++ b/src/main/java/io/ebeaninternal/server/persist/BatchControl.java @@ -267,8 +267,8 @@ public final class BatchControl { if (transaction.isLogSummary()) { transaction.logSummary("BatchControl flush " + Arrays.toString(bsArray)); } - for (BatchedBeanHolder aBsArray : bsArray) { - aBsArray.executeNow(); + for (BatchedBeanHolder beanHolder : bsArray) { + beanHolder.executeNow(); } if (resetTop) { diff --git a/src/main/java/io/ebeaninternal/server/persist/dml/DmlHandler.java b/src/main/java/io/ebeaninternal/server/persist/dml/DmlHandler.java index ea1a05087..ad770bcaf 100644 --- a/src/main/java/io/ebeaninternal/server/persist/dml/DmlHandler.java +++ b/src/main/java/io/ebeaninternal/server/persist/dml/DmlHandler.java @@ -24,6 +24,8 @@ public abstract class DmlHandler implements PersistHandler, BindableRequest { private static final Logger logger = LoggerFactory.getLogger(DmlHandler.class); private static final int[] GENERATED_KEY_COLUMNS = new int[]{1}; + private static final int BATCHED_FIRST = 1; + private static final int BATCHED = 2; /** * The originating request. @@ -49,6 +51,8 @@ public abstract class DmlHandler implements PersistHandler, BindableRequest { protected String sql; + private short batchedStatus; + protected DmlHandler(PersistRequestBean persistRequest, boolean emptyStringToNull) { this.now = System.currentTimeMillis(); this.persistRequest = persistRequest; @@ -150,8 +154,20 @@ public abstract class DmlHandler implements PersistHandler, BindableRequest { */ protected void logSql(String sql) { if (logLevelSql) { - sql = Str.add(sql, "; --bind(", bindLog.toString(), ")"); - transaction.logSql(sql); + switch (batchedStatus) { + case BATCHED_FIRST: { + transaction.logSql(sql); + transaction.logSql(Str.add(" -- bind(", bindLog.toString(), ")")); + return; + } + case BATCHED: { + transaction.logSql(Str.add(" -- bind(", bindLog.toString(), ")")); + return; + } + default: { + transaction.logSql(Str.add(sql, "; -- bind(", bindLog.toString(), ")")); + } + } } } @@ -250,9 +266,11 @@ public abstract class DmlHandler implements PersistHandler, BindableRequest { BatchedPstmtHolder batch = t.getBatchControl().getPstmtHolder(); batchedPstmt = batch.getBatchedPstmt(sql, request); if (batchedPstmt != null) { + batchedStatus = BATCHED; return batchedPstmt.getStatement(); } + batchedStatus = BATCHED_FIRST; PreparedStatement stmt = getPstmt(t, sql, genKeys); batchedPstmt = new BatchedPstmt(stmt, genKeys, sql, t); diff --git a/src/test/java/io/ebean/EbeanServer_saveAllTest.java b/src/test/java/io/ebean/EbeanServer_saveAllTest.java index 6aa42c1b3..0187adcf1 100644 --- a/src/test/java/io/ebean/EbeanServer_saveAllTest.java +++ b/src/test/java/io/ebean/EbeanServer_saveAllTest.java @@ -23,10 +23,9 @@ public class EbeanServer_saveAllTest extends BaseTestCase { // assert List loggedSql = LoggedSqlCollector.stop(); - for (String insertSql : loggedSql) { - assertThat(insertSql).contains("insert into e_basicver ("); - assertThat(insertSql).contains("name, description, other, last_update) values ("); - } + assertThat(loggedSql).hasSize(4); + assertThat(loggedSql.get(0)).contains("insert into e_basicver ("); + assertThat(loggedSql.get(0)).contains("name, description, other, last_update) values ("); for (EBasicVer someBean : someBeans) { someBean.setName(someBean.getName() + "-mod"); @@ -37,20 +36,17 @@ public class EbeanServer_saveAllTest extends BaseTestCase { Ebean.updateAll(someBeans); loggedSql = LoggedSqlCollector.stop(); - for (String updateSql : loggedSql) { - assertThat(updateSql).contains("update e_basicver set name=?, last_update=? where id=? "); - } + assertThat(loggedSql).hasSize(3); + assertThat(loggedSql.get(0)).contains("update e_basicver set name=?, last_update=? where id=? "); // act LoggedSqlCollector.start(); Ebean.deleteAll(someBeans); loggedSql = LoggedSqlCollector.stop(); - for (String updateSql : loggedSql) { - assertThat(updateSql).contains("delete from e_basicver where id=? "); - } - + assertThat(loggedSql).hasSize(4); + assertThat(loggedSql.get(0)).contains("delete from e_basicver where id=?"); } @Test @@ -124,10 +120,9 @@ public class EbeanServer_saveAllTest extends BaseTestCase { // assert List loggedSql = LoggedSqlCollector.stop(); - for (String insertSql : loggedSql) { - assertThat(insertSql).contains("insert into e_basicver ("); - assertThat(insertSql).contains("name, description, other, last_update) values ("); - } + assertThat(loggedSql).hasSize(4); + assertThat(loggedSql.get(0)).contains("insert into e_basicver ("); + assertThat(loggedSql.get(0)).contains("name, description, other, last_update) values ("); for (EBasicVer someBean : someBeans) { someBean.setName(someBean.getName() + "-mod"); @@ -141,10 +136,8 @@ public class EbeanServer_saveAllTest extends BaseTestCase { txn.commit(); } loggedSql = LoggedSqlCollector.stop(); - for (String updateSql : loggedSql) { - assertThat(updateSql).contains("update e_basicver set name=?, last_update=? where id=? "); - } - + assertThat(loggedSql).hasSize(3); + assertThat(loggedSql.get(0)).contains("update e_basicver set name=?, last_update=? where id=? "); // act LoggedSqlCollector.start(); @@ -153,9 +146,8 @@ public class EbeanServer_saveAllTest extends BaseTestCase { txn.commit(); } loggedSql = LoggedSqlCollector.stop(); - for (String updateSql : loggedSql) { - assertThat(updateSql).contains("delete from e_basicver where id=? "); - } + assertThat(loggedSql).hasSize(4); + assertThat(loggedSql.get(0)).contains("delete from e_basicver where id=?"); } diff --git a/src/test/java/org/tests/batchinsert/TestBatchInsertFlush.java b/src/test/java/org/tests/batchinsert/TestBatchInsertFlush.java index 2ec125a23..e9dcfb629 100644 --- a/src/test/java/org/tests/batchinsert/TestBatchInsertFlush.java +++ b/src/test/java/org/tests/batchinsert/TestBatchInsertFlush.java @@ -67,9 +67,9 @@ public class TestBatchInsertFlush extends BaseTestCase { // we get the 2 master inserts first assertThat(sql.get(0)).contains("insert into t_atable_thatisrelatively"); - assertThat(sql.get(1)).contains("insert into t_atable_thatisrelatively"); + assertThat(sql.get(1)).contains("-- bind("); // detail - assertThat(sql.get(2)).contains("insert into t_detail_with_other_namexxxyy"); + assertThat(sql.get(3)).contains("insert into t_detail_with_other_namexxxyy"); assertThat(((SpiTransaction)transaction).getLabel()).isEqualTo("TestBatchInsertFlush.no_cascade"); @@ -137,7 +137,7 @@ public class TestBatchInsertFlush extends BaseTestCase { assertThat(LoggedSqlCollector.current()).isEmpty(); Integer id = b1.getId(); assertNotNull(id); - assertThat(LoggedSqlCollector.current()).hasSize(2); + assertThat(LoggedSqlCollector.current()).hasSize(3); EBasicVer b3 = new EBasicVer("b3"); server.save(b3); @@ -163,7 +163,7 @@ public class TestBatchInsertFlush extends BaseTestCase { assertThat(LoggedSqlCollector.current()).isEmpty(); Integer id = b1.getId(); assertNotNull(id); - assertThat(LoggedSqlCollector.current()).hasSize(2); + assertThat(LoggedSqlCollector.current()).hasSize(3); EBasicVer b3 = new EBasicVer("b3"); server.save(b3, txn); @@ -229,7 +229,7 @@ public class TestBatchInsertFlush extends BaseTestCase { server.save(b3, txn); txn.commit(); - assertThat(LoggedSqlCollector.current()).hasSize(3); + assertThat(LoggedSqlCollector.current()).hasSize(5); } finally { txn.end(); diff --git a/src/test/java/org/tests/batchinsert/TestBatchInsertWithInitialisedCollection.java b/src/test/java/org/tests/batchinsert/TestBatchInsertWithInitialisedCollection.java index 3d5d936ef..5a6fadfca 100644 --- a/src/test/java/org/tests/batchinsert/TestBatchInsertWithInitialisedCollection.java +++ b/src/test/java/org/tests/batchinsert/TestBatchInsertWithInitialisedCollection.java @@ -40,12 +40,8 @@ public class TestBatchInsertWithInitialisedCollection extends BaseTestCase { } List loggedSql = LoggedSqlCollector.stop(); - assertThat(loggedSql).hasSize(3); - - for (String sql : loggedSql) { - assertThat(sql).contains("insert into o_cached_bean ("); - assertThat(sql).contains("name) values (?"); - } - + assertThat(loggedSql).hasSize(4); + assertThat(loggedSql.get(0)).contains("insert into o_cached_bean ("); + assertThat(loggedSql.get(0)).contains("name) values (?"); } } diff --git a/src/test/java/org/tests/cascade/TestOrderedList.java b/src/test/java/org/tests/cascade/TestOrderedList.java index 4b8540adb..c0b08b4a8 100644 --- a/src/test/java/org/tests/cascade/TestOrderedList.java +++ b/src/test/java/org/tests/cascade/TestOrderedList.java @@ -78,7 +78,7 @@ public class TestOrderedList extends BaseTestCase { Ebean.save(fresh); sql = LoggedSqlCollector.current(); - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(7); assertThat(sql.get(0)).contains("update om_ordered_master set name=?, version=?"); assertThat(sql.get(1)).contains("update om_ordered_detail set version=?, sort_order=? where id=? and version=?"); @@ -87,10 +87,10 @@ public class TestOrderedList extends BaseTestCase { Ebean.save(fresh); sql = LoggedSqlCollector.current(); - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(8); assertThat(sql.get(0)).contains("update om_ordered_master set name=?, version=?"); assertThat(sql.get(1)).contains("update om_ordered_detail set version=?, sort_order=? where id=? and version=?"); - assertThat(sql.get(2)).contains("update om_ordered_detail set name=?, version=?, sort_order=? where id=? and version=?"); + assertThat(sql.get(3)).contains("update om_ordered_detail set name=?, version=?, sort_order=? where id=? and version=?"); Ebean.delete(fresh); diff --git a/src/test/java/org/tests/merge/TestMergeBasic.java b/src/test/java/org/tests/merge/TestMergeBasic.java index d02861c5e..f23ee0884 100644 --- a/src/test/java/org/tests/merge/TestMergeBasic.java +++ b/src/test/java/org/tests/merge/TestMergeBasic.java @@ -60,20 +60,19 @@ public class TestMergeBasic extends BaseTestCase { // persist children ... if (isPersistBatchOnCascade()) { - assertThat(sql.get(3)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?);"); - assertThat(sql.get(4)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?);"); - - assertThat(sql.get(5)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); + assertThat(sql.get(3)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?)"); + assertThat(sql.get(4)).contains("-- bind("); + assertThat(sql.get(5)).contains("-- bind("); assertThat(sql.get(6)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); - assertThat(sql.get(7)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); - } - else { - assertThat(sql.get(3)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?);"); + assertThat(sql.get(7)).contains("-- bind("); + assertThat(sql.get(8)).contains("-- bind("); + assertThat(sql.get(9)).contains("-- bind("); + } else { + assertThat(sql.get(3)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?);"); assertThat(sql.get(4)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); assertThat(sql.get(5)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); assertThat(sql.get(6)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); - assertThat(sql.get(7)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?);"); } } @@ -109,23 +108,16 @@ public class TestMergeBasic extends BaseTestCase { // persist children ... if (isPersistBatchOnCascade()) { - assertThat(sql.get(3)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?);"); - assertThat(sql.get(4)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?);"); - - assertThat(sql.get(5)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); + assertThat(sql.get(3)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?)"); + assertThat(sql.get(4)).contains("-- bind("); + assertThat(sql.get(5)).contains("-- bind("); assertThat(sql.get(6)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); - assertThat(sql.get(7)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); - } - else { + assertThat(sql.get(9)).contains("-- bind("); + + } else { assertThat(sql.get(3)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?);"); - - assertThat(sql.get(4)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); - assertThat(sql.get(5)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); assertThat(sql.get(6)).contains("update uutwo set name=?, notes=?, version=?, master_id=? where id=? and version=?"); - - assertThat(sql.get(7)).contains("insert into uutwo (id, name, notes, version, master_id) values (?,?,?,?,?);"); } - } private UUOne buildGraph() { diff --git a/src/test/java/org/tests/merge/TestMergeCustomer.java b/src/test/java/org/tests/merge/TestMergeCustomer.java index 6068d034d..4b4a38b78 100644 --- a/src/test/java/org/tests/merge/TestMergeCustomer.java +++ b/src/test/java/org/tests/merge/TestMergeCustomer.java @@ -279,11 +279,9 @@ public class TestMergeCustomer extends BaseTestCase { assertThat(sql.get(5)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); if (isPersistBatchOnCascade()) { assertThat(sql.get(6)).contains("insert into mcontact"); - assertThat(sql.get(7)).contains("insert into mcontact"); - assertThat(sql.get(8)).contains("update mcontact set email=?, first_name=?, last_name=?, version=?, customer_id=? where id=? and version=?"); - assertThat(sql.get(11)).contains("update mcontact set email=?, first_name=?, last_name=?, version=?, customer_id=? where id=? and version=?"); - } - else { + assertThat(sql.get(7)).contains("-- bind("); + assertThat(sql.get(9)).contains("update mcontact set email=?, first_name=?, last_name=?, version=?, customer_id=? where id=? and version=?"); + } else { assertThat(sql.get(6)).contains("update mcontact set email=?, first_name=?, last_name=?, version=?, customer_id=? where id=? and version=?"); assertThat(sql.get(7)).contains("update mcontact set email=?, first_name=?, last_name=?, version=?, customer_id=? where id=? and version=?"); assertThat(sql.get(10)).contains("insert into mcontact"); @@ -327,14 +325,12 @@ public class TestMergeCustomer extends BaseTestCase { if (isPersistBatchOnCascade()) { assertThat(sql.get(8)).contains("insert into mcontact"); - assertThat(sql.get(9)).contains("update mcontact set email=?, first_name=?, last_name=?, version=?, customer_id=? where id=? and version=?"); - - assertThat(sql.get(13)).contains("update mcontact_message set title=?, subject=?, notes=?, version=?, contact_id=? where id=? and version=?"); - } - else { + assertThat(sql.get(10)).contains("update mcontact set email=?, first_name=?, last_name=?, version=?, customer_id=? where id=? and version=?"); + assertThat(sql.get(15)).contains("update mcontact_message set title=?, subject=?, notes=?, version=?, contact_id=? where id=? and version=?"); + } else { assertThat(sql.get(8)).contains("update mcontact set email=?, first_name=?, last_name=?, version=?, customer_id=? where id=? and version=?"); assertThat(sql.get(9)).contains("update mcontact_message set title=?, subject=?, notes=?, version=?, contact_id=? where id=? and version=?"); - + assertThat(sql.get(sql.size()-1)).contains("insert into mcontact"); } diff --git a/src/test/java/org/tests/model/basic/xtra/TestInsertBatchThenFlushThenUpdate.java b/src/test/java/org/tests/model/basic/xtra/TestInsertBatchThenFlushThenUpdate.java index 9b8334b62..294e8d898 100644 --- a/src/test/java/org/tests/model/basic/xtra/TestInsertBatchThenFlushThenUpdate.java +++ b/src/test/java/org/tests/model/basic/xtra/TestInsertBatchThenFlushThenUpdate.java @@ -11,6 +11,7 @@ import org.junit.Test; import java.util.ArrayList; import java.util.List; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -21,8 +22,7 @@ public class TestInsertBatchThenFlushThenUpdate extends BaseTestCase { public void test() { LoggedSqlCollector.start(); - Transaction txn = Ebean.beginTransaction(); - try { + try (Transaction txn = Ebean.beginTransaction()) { txn.setBatchMode(true); EdParent parent = new EdParent(); @@ -43,7 +43,7 @@ public class TestInsertBatchThenFlushThenUpdate extends BaseTestCase { txn.flushBatch(); List loggedSql1 = LoggedSqlCollector.start(); - assertEquals(loggedSql1.toString(), 2, loggedSql1.size()); + assertThat(loggedSql1).hasSize(4); parent.setName("MyDesk"); Ebean.save(parent); @@ -55,11 +55,8 @@ public class TestInsertBatchThenFlushThenUpdate extends BaseTestCase { // insert statements for EdExtendedParent List loggedSql2 = LoggedSqlCollector.start(); - assertEquals(1, loggedSql2.size()); + assertEquals(2, loggedSql2.size()); assertTrue(loggedSql2.get(0).contains(" update td_parent ")); - - } finally { - Ebean.endTransaction(); } } diff --git a/src/test/java/org/tests/model/basic/xtra/TestInsertBatchThenUpdate.java b/src/test/java/org/tests/model/basic/xtra/TestInsertBatchThenUpdate.java index 7d9e1d3c0..7ccd6c4d2 100644 --- a/src/test/java/org/tests/model/basic/xtra/TestInsertBatchThenUpdate.java +++ b/src/test/java/org/tests/model/basic/xtra/TestInsertBatchThenUpdate.java @@ -12,7 +12,6 @@ import java.util.ArrayList; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; public class TestInsertBatchThenUpdate extends BaseTestCase { @@ -21,8 +20,7 @@ public class TestInsertBatchThenUpdate extends BaseTestCase { public void test() { LoggedSqlCollector.start(); - Transaction txn = Ebean.beginTransaction(); - try { + try (Transaction txn = Ebean.beginTransaction()) { txn.setBatchMode(true); LoggedSqlCollector.start(); @@ -50,13 +48,10 @@ public class TestInsertBatchThenUpdate extends BaseTestCase { // insert statements for EdExtendedParent List loggedSql = LoggedSqlCollector.stop(); - assertThat(loggedSql).hasSize(3); + assertThat(loggedSql).hasSize(6); assertThat(loggedSql.get(0)).contains("insert into td_parent"); - assertThat(loggedSql.get(1)).contains("insert into td_child "); - assertThat(loggedSql.get(2)).contains("update td_parent set parent_name=? where parent_id=?"); - - } finally { - Ebean.endTransaction(); + assertThat(loggedSql.get(2)).contains("insert into td_child "); + assertThat(loggedSql.get(4)).contains("update td_parent set parent_name=? where parent_id=?"); } } @@ -66,8 +61,7 @@ public class TestInsertBatchThenUpdate extends BaseTestCase { public void test_noFlushOn_getterOfNonGeneratedProperty() { LoggedSqlCollector.start(); - Transaction txn = Ebean.beginTransaction(); - try { + try (Transaction txn = Ebean.beginTransaction()) { txn.setBatchMode(true); LoggedSqlCollector.start(); @@ -97,12 +91,9 @@ public class TestInsertBatchThenUpdate extends BaseTestCase { // insert statements for EdExtendedParent List loggedSql = LoggedSqlCollector.stop(); - assertEquals(2, loggedSql.size()); + assertThat(loggedSql).hasSize(4); assertThat(loggedSql.get(0)).contains("insert into td_parent"); - assertThat(loggedSql.get(1)).contains("insert into td_child "); - - } finally { - Ebean.endTransaction(); + assertThat(loggedSql.get(2)).contains("insert into td_child "); } } diff --git a/src/test/java/org/tests/model/basic/xtra/TestInsertBatchWithDifferentRootTypes.java b/src/test/java/org/tests/model/basic/xtra/TestInsertBatchWithDifferentRootTypes.java index ca7d8e957..9bfe75f00 100644 --- a/src/test/java/org/tests/model/basic/xtra/TestInsertBatchWithDifferentRootTypes.java +++ b/src/test/java/org/tests/model/basic/xtra/TestInsertBatchWithDifferentRootTypes.java @@ -20,8 +20,8 @@ public class TestInsertBatchWithDifferentRootTypes extends BaseTestCase { public void testDifferRootTypes() { LoggedSqlCollector.start(); - Transaction txn = Ebean.beginTransaction(); - try { + + try (Transaction txn = Ebean.beginTransaction()) { txn.setBatchMode(true); EdParent parent = new EdParent(); @@ -63,10 +63,8 @@ public class TestInsertBatchWithDifferentRootTypes extends BaseTestCase { // insert statements for EdExtendedParent List loggedSql2 = LoggedSqlCollector.start(); - assertEquals(4, loggedSql2.size()); + assertEquals(7, loggedSql2.size()); - } finally { - Ebean.endTransaction(); } } diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java index bcbb642f8..03daa1dab 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java @@ -114,7 +114,7 @@ public class TestElementCollectionBasic extends BaseTestCase { } List sql = LoggedSqlCollector.current(); - assertThat(sql).hasSize(1); + assertThat(sql).hasSize(2); assertThat(sql.get(0)).contains("update ec_person"); assertThat(eventLog()).containsExactly("preUpdate", "postUpdate"); @@ -160,10 +160,10 @@ public class TestElementCollectionBasic extends BaseTestCase { } List sql = LoggedSqlCollector.current(); - assertThat(sql).hasSize(3); + assertThat(sql).hasSize(4); assertThat(sql.get(0)).contains("update ec_person set name=?, version=? where id=? and version=?"); - assertThat(sql.get(1)).contains("delete from ec_person_phone where owner_id=?"); - assertThat(sql.get(2)).contains("insert into ec_person_phone (owner_id,phone) values (?,?)"); + assertThat(sql.get(2)).contains("delete from ec_person_phone where owner_id=?"); + assertThat(sql.get(3)).contains("insert into ec_person_phone (owner_id,phone) values (?,?)"); assertThat(eventLog()).containsExactly("preUpdate", "postUpdate"); diff --git a/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanRemove.java b/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanRemove.java index 3dca53db0..e0f3ed0f4 100644 --- a/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanRemove.java +++ b/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanRemove.java @@ -30,10 +30,11 @@ public class TestOneToOneOrphanRemove extends BaseTestCase { Ebean.save(jack); List sql = LoggedSqlCollector.current(); - assertThat(sql).hasSize(3); + assertThat(sql).hasSize(4); assertThat(sql.get(0)).contains("delete from oto_cust_address where aid=? and version=?"); assertThat(sql.get(1)).contains("update oto_cust set version=? where cid=? and version=?"); assertThat(sql.get(2)).contains("insert into oto_cust_address "); + assertThat(sql.get(3)).contains("-- bind(other1"); jack.setAddress(null); Ebean.save(jack); 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 8455e5669..b22d92340 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 @@ -61,7 +61,7 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { List sql = LoggedSqlCollector.stop(); assertThat(sql).hasSize(1); - assertThat(sql.get(0)).contains("update cover set deleted=? where id=?; --bind(false"); + assertThat(sql.get(0)).contains("update cover set deleted=? where id=?; -- bind(false"); Cover findAgain = Ebean.find(Cover.class, cover.getId()); assertNotNull(findAgain); @@ -215,7 +215,7 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { Ebean.deleteAll(beans); List sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(2); + assertThat(sql).hasSize(3); if (isPersistBatchOnCascade()) { assertThat(sql.get(0)).contains("update cover set s3_url=?, deleted=? where id=?"); } @@ -236,7 +236,7 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { server.deleteAll(beans); List sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(2); + assertThat(sql).hasSize(3); if (isPersistBatchOnCascade()) { assertThat(sql.get(0)).contains("update cover set s3_url=?, deleted=? where id=?"); } @@ -263,7 +263,7 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { } List sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(2); + assertThat(sql).hasSize(3); if (isPersistBatchOnCascade()) { assertThat(sql.get(0)).contains("update cover set s3_url=?, deleted=? where id=?"); } @@ -284,7 +284,7 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { server.deleteAllPermanent(beans); List sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(2); + assertThat(sql).hasSize(3); assertThat(sql.get(0)).contains("delete from cover where id=?"); } @@ -306,7 +306,7 @@ public class DeleteById_SoftDelete_Tests extends BaseTestCase { } List sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(2); + assertThat(sql).hasSize(3); assertThat(sql.get(0)).contains("delete from cover where id=?"); } diff --git a/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTable.java b/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTable.java index 98e405a36..687bccdf8 100644 --- a/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTable.java +++ b/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTable.java @@ -97,13 +97,14 @@ public class TestOneToManyJoinTable extends BaseTestCase { //Collections.sort(sql); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(8); assertThat(sql.get(0)).contains("insert into trainer "); assertThat(sql.get(1)).contains("insert into monkey "); - assertThat(sql.get(4)).contains("update monkey set name=?, food_preference=?, version=? where mid=? and version=?"); - assertThat(sql.get(5)).contains("insert into trainer_monkey "); - } - else { + assertThat(sql.get(5)).contains("update monkey set name=?, food_preference=?, version=? where mid=? and version=?"); + assertThat(sql.get(6)).contains("-- bind("); + assertThat(sql.get(7)).contains("insert into trainer_monkey "); + + } else { assertThat(sql).hasSize(10); assertThat(sql.get(0)).contains("insert into trainer "); assertThat(sql.get(1)).contains("update monkey set food_preference=?, version=? where mid=? and version=?"); diff --git a/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTableInheritance.java b/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTableInheritance.java index 5468434bc..3de523684 100644 --- a/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTableInheritance.java +++ b/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTableInheritance.java @@ -34,14 +34,14 @@ public class TestOneToManyJoinTableInheritance extends BaseTestCase { List sql = LoggedSqlCollector.current(); - assertThat(sql).hasSize(7); + assertThat(sql).hasSize(11); assertThat(sql.get(0)).contains("insert into class_super "); - assertThat(sql.get(1)).contains("insert into monkey "); assertThat(sql.get(2)).contains("insert into monkey "); - assertThat(sql.get(3)).contains("insert into class_super_monkey "); - assertThat(sql.get(4)).contains("insert into class_super "); - assertThat(sql.get(5)).contains("insert into monkey "); - assertThat(sql.get(6)).contains("insert into class_super_monkey "); + assertThat(sql.get(2)).contains("insert into monkey "); + assertThat(sql.get(5)).contains("insert into class_super_monkey "); + assertThat(sql.get(6)).contains("insert into class_super "); + assertThat(sql.get(8)).contains("insert into monkey "); + assertThat(sql.get(10)).contains("insert into class_super_monkey "); ClassA dbA = Ebean.find(ClassA.class, 1); ClassB dbB = Ebean.find(ClassB.class, 2); diff --git a/src/test/java/org/tests/softdelete/TestSoftDeleteStatelessUpdate.java b/src/test/java/org/tests/softdelete/TestSoftDeleteStatelessUpdate.java index 3e2875c2b..720447f58 100644 --- a/src/test/java/org/tests/softdelete/TestSoftDeleteStatelessUpdate.java +++ b/src/test/java/org/tests/softdelete/TestSoftDeleteStatelessUpdate.java @@ -41,7 +41,7 @@ public class TestSoftDeleteStatelessUpdate extends BaseTestCase { Ebean.getDefaultServer().update(upd, null, true); List sql = LoggedSql.collect(); - assertThat(sql).hasSize(4); + assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("update esd_master set name=? where id=?"); if (isPlatformBooleanNative()) { assertThat(sql.get(1)).contains("update esd_detail set deleted=true where master_id = ? and not"); diff --git a/src/test/java/org/tests/update/TestUpdateAllLoadedProperties.java b/src/test/java/org/tests/update/TestUpdateAllLoadedProperties.java index b3d4812cb..38c33c206 100644 --- a/src/test/java/org/tests/update/TestUpdateAllLoadedProperties.java +++ b/src/test/java/org/tests/update/TestUpdateAllLoadedProperties.java @@ -4,9 +4,9 @@ import io.ebean.BaseTestCase; import io.ebean.Ebean; import io.ebean.EbeanServer; import io.ebean.Transaction; -import org.tests.model.basic.EBasicVer; import org.ebeantest.LoggedSqlCollector; import org.junit.Test; +import org.tests.model.basic.EBasicVer; import java.util.ArrayList; import java.util.List; @@ -29,8 +29,7 @@ public class TestUpdateAllLoadedProperties extends BaseTestCase { EbeanServer server = Ebean.getDefaultServer(); - Transaction txn = server.beginTransaction(); - try { + try (Transaction txn = server.beginTransaction()) { txn.setUpdateAllLoadedProperties(true); @@ -49,11 +48,8 @@ public class TestUpdateAllLoadedProperties extends BaseTestCase { assertEquals(2, loggedSql.size()); // all properties in the bean - assertThat(loggedSql.get(0)).contains("update e_basicver set name=?, description=?, other=?, last_update=? where id=? and last_update=?; --bind("); - assertThat(loggedSql.get(1)).contains("update e_basicver set name=?, description=?, other=?, last_update=? where id=? and last_update=?; --bind("); - - } finally { - txn.end(); + assertThat(loggedSql.get(0)).contains("update e_basicver set name=?, description=?, other=?, last_update=? where id=? and last_update=?; -- bind("); + assertThat(loggedSql.get(1)).contains("update e_basicver set name=?, description=?, other=?, last_update=? where id=? and last_update=?; -- bind("); } testPartiallyLoaded(basic1.getId(), basic2.getId()); @@ -99,8 +95,8 @@ public class TestUpdateAllLoadedProperties extends BaseTestCase { List loggedSql = LoggedSqlCollector.stop(); assertThat(loggedSql).hasSize(2); - assertThat(loggedSql.get(0)).contains("update e_basicver set name=?, other=? where id=?; --bind("); - assertThat(loggedSql.get(1)).contains("update e_basicver set name=?, other=? where id=?; --bind("); + assertThat(loggedSql.get(0)).contains("update e_basicver set name=?, other=? where id=?; -- bind("); + assertThat(loggedSql.get(1)).contains("update e_basicver set name=?, other=? where id=?; -- bind("); } }