From 80a764a448d78c55b6bfd4d169acb8fe64cd6aae Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Wed, 9 Oct 2019 00:17:34 +1300 Subject: [PATCH] #1835 Refactor JDBC batch escalation --- .../server/core/PersistRequestBean.java | 2 +- .../server/deploy/BeanDescriptor.java | 24 ++++- .../server/deploy/BeanPropertyAssocMany.java | 4 + .../server/transaction/JdbcTransaction.java | 5 - src/test/java/io/ebean/BaseTestCase.java | 4 + .../org/tests/cascade/TestOrderedList.java | 7 +- .../org/tests/cascade/TestPrivateOwned.java | 3 +- .../org/tests/ddl/TestForeignKeyModes.java | 5 +- .../delete/TestDeleteCascadeWithListener.java | 14 +-- .../org/tests/iud/TestPersistCascade.java | 6 +- .../org/tests/merge/TestMergeCustomer.java | 100 +++++++++--------- .../TestElementCollectionBasic.java | 14 +-- .../TestElementCollectionBasicCache.java | 6 +- .../TestElementCollectionBasicMap.java | 14 +-- .../TestElementCollectionBasicMapCache.java | 8 +- .../TestElementCollectionBasicSet.java | 14 +-- .../TestElementCollectionEmbeddedList.java | 14 +-- ...estElementCollectionEmbeddedListCache.java | 9 +- .../TestElementCollectionEmbeddedMap.java | 13 +-- ...TestElementCollectionEmbeddedMapCache.java | 16 +-- .../onetoone/TestOneToOneOrphanRemove.java | 14 +-- .../onetoone/TestOneToOneOrphanStringId.java | 19 ++-- .../onetoone/TestOneToOnePrimaryKeyJoin.java | 4 - .../TestOneToOnePrimaryKeyJoinBidi.java | 5 - .../TestOneToOnePrimaryKeyJoinOptional.java | 1 - .../orphanremoval/TestOrphanRemoveO2M.java | 3 +- .../TestSoftDeleteStatelessUpdate.java | 2 +- src/test/resources/ebean.properties | 2 +- 28 files changed, 179 insertions(+), 153 deletions(-) diff --git a/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java b/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java index c0aea5695..987fa71c5 100644 --- a/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java +++ b/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java @@ -283,7 +283,7 @@ public final class PersistRequestBean extends PersistRequest implements BeanP * Check for batch escalation on cascade. */ public void checkBatchEscalationOnCascade() { - if (type != Type.INSERT || beanDescriptor.isCascadeBatchEscalateSupported()) { + if (type == Type.UPDATE || beanDescriptor.isBatchEscalateOnCascade(type)) { if (transaction.checkBatchEscalationOnCascade(this)) { // we escalated to use batch mode so flush when done // but if createdTransaction then commit will flush it diff --git a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java index 0e8b8bcf6..ab0882715 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java +++ b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java @@ -140,7 +140,8 @@ public class BeanDescriptor implements BeanType, STreeType { private final short profileBeanId; private final boolean multiValueSupported; - private boolean cascadeBatchEscalateSupported; + private boolean batchEscalateOnCascadeInsert; + private boolean batchEscalateOnCascadeDelete; public enum EntityType { ORM, EMBEDDED, VIEW, SQL, DOC @@ -831,7 +832,8 @@ public class BeanDescriptor implements BeanType, STreeType { */ @SuppressWarnings("unchecked") void initialiseDocMapping() { - cascadeBatchEscalateSupported = supportCascadeBatch(); + batchEscalateOnCascadeInsert = supportBatchEscalateOnInsert(); + batchEscalateOnCascadeDelete = supportBatchEscalateOnDelete(); for (BeanPropertyAssocMany many : propertiesMany) { many.initialisePostTarget(); } @@ -846,7 +848,19 @@ public class BeanDescriptor implements BeanType, STreeType { cacheHelp.deriveNotifyFlags(); } - private boolean supportCascadeBatch() { + private boolean supportBatchEscalateOnDelete() { + if (softDelete) { + return false; + } + for (BeanPropertyAssocMany assocMany : propertiesManyDelete) { + if (assocMany.isCascadeDeleteEscalate()) { + return true; + } + } + return false; + } + + private boolean supportBatchEscalateOnInsert() { return idType == IdType.IDENTITY || !hasCircularImportedId(); } @@ -854,8 +868,8 @@ public class BeanDescriptor implements BeanType, STreeType { * Return false if JDBC batch can't be implicitly escalated to. * This happens when we have circular import id situation (need to defer setting identity value). */ - public boolean isCascadeBatchEscalateSupported() { - return cascadeBatchEscalateSupported; + public boolean isBatchEscalateOnCascade(PersistRequest.Type type) { + return type == PersistRequest.Type.INSERT ? batchEscalateOnCascadeInsert : batchEscalateOnCascadeDelete; } void initInheritInfo() { diff --git a/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java b/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java index 353fc5195..7ee6ca372 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java +++ b/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java @@ -958,6 +958,10 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc implements ST return cascadeInfo.isDelete() || o2mJoinTable || ModifyListenMode.REMOVALS == modifyListenMode; } + public boolean isCascadeDeleteEscalate() { + return !elementCollection && cascadeInfo.isDelete(); + } + public String insertElementCollection() { return sqlHelp.insertElementCollection(); } diff --git a/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java b/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java index 04c5fcfd9..f1d9cb7f8 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java +++ b/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java @@ -639,11 +639,6 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { */ @Override public boolean isBatchThisRequest() { - if (!batchOnCascadeSet && !explicit && depth <= 0) { - // implicit transaction, no gain by batching where depth <= 0 - return false; - } - // return batchMode; } diff --git a/src/test/java/io/ebean/BaseTestCase.java b/src/test/java/io/ebean/BaseTestCase.java index c9bcd6064..a44de541d 100644 --- a/src/test/java/io/ebean/BaseTestCase.java +++ b/src/test/java/io/ebean/BaseTestCase.java @@ -114,6 +114,10 @@ public abstract class BaseTestCase { return trimSql(query.getGeneratedSql(), columns); } + protected void assertSqlBind(String sql) { + assertThat(sql).contains("-- bind"); + } + protected void assertSqlBind(List sql, int i) { assertThat(sql.get(i)).contains("-- bind"); } diff --git a/src/test/java/org/tests/cascade/TestOrderedList.java b/src/test/java/org/tests/cascade/TestOrderedList.java index c0b08b4a8..7aa46a2e0 100644 --- a/src/test/java/org/tests/cascade/TestOrderedList.java +++ b/src/test/java/org/tests/cascade/TestOrderedList.java @@ -48,9 +48,7 @@ public class TestOrderedList extends BaseTestCase { assertThat(sql).hasSize(1); assertThat(sql.get(0)).contains("update om_ordered_master set name=?, version=?"); - fetchAndReorder(master.getId()); - } private void fetchAndReorder(Long id) { @@ -96,8 +94,9 @@ public class TestOrderedList extends BaseTestCase { Ebean.delete(fresh); sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(2); + assertThat(sql).hasSize(3); assertThat(sql.get(0)).contains("delete from om_ordered_detail where master_id = ?"); - assertThat(sql.get(1)).contains("delete from om_ordered_master where id=? and version=?"); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("delete from om_ordered_master where id=? and version=?"); } } diff --git a/src/test/java/org/tests/cascade/TestPrivateOwned.java b/src/test/java/org/tests/cascade/TestPrivateOwned.java index 299ce5a91..5c9ee8235 100644 --- a/src/test/java/org/tests/cascade/TestPrivateOwned.java +++ b/src/test/java/org/tests/cascade/TestPrivateOwned.java @@ -71,8 +71,9 @@ public class TestPrivateOwned extends BaseTestCase { Ebean.save(m0); List loggedSql = LoggedSqlCollector.stop(); - assertThat(loggedSql).hasSize(1); + assertThat(loggedSql).hasSize(2); assertThat(loggedSql.get(0)).contains("delete from t_detail_with_other_namexxxyy where id=?"); + assertSqlBind(loggedSql.get(1)); TSMaster masterReload = Ebean.find(TSMaster.class, m0.getId()); assertThat(masterReload.getDetails()).hasSize(1); diff --git a/src/test/java/org/tests/ddl/TestForeignKeyModes.java b/src/test/java/org/tests/ddl/TestForeignKeyModes.java index e0eab0a7b..235401bd5 100644 --- a/src/test/java/org/tests/ddl/TestForeignKeyModes.java +++ b/src/test/java/org/tests/ddl/TestForeignKeyModes.java @@ -79,9 +79,10 @@ public class TestForeignKeyModes extends BaseTestCase { Ebean.delete(none); List sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(2); + assertThat(sql).hasSize(3); assertThat(sql.get(0)).contains("delete from dfk_none_via_mto_m_dfk_one where dfk_none_via_mto_m_id = ?"); - assertThat(sql.get(1)).contains("delete from dfk_none_via_mto_m where id=?"); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("delete from dfk_none_via_mto_m where id=?"); } @IgnorePlatform(Platform.NUODB) diff --git a/src/test/java/org/tests/delete/TestDeleteCascadeWithListener.java b/src/test/java/org/tests/delete/TestDeleteCascadeWithListener.java index 56d47e5ea..8bc1570c6 100644 --- a/src/test/java/org/tests/delete/TestDeleteCascadeWithListener.java +++ b/src/test/java/org/tests/delete/TestDeleteCascadeWithListener.java @@ -27,13 +27,13 @@ public class TestDeleteCascadeWithListener extends BaseTestCase { Ebean.delete(found); List sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(5); - - assertThat(sql.get(0)).contains("select t0.id from dc_detail t0 where master_id=?"); - assertThat(sql.get(1)).contains("delete from dc_detail where id=?"); - assertThat(sql.get(3)).contains("delete from dc_detail where id=?"); - assertThat(sql.get(4)).contains("delete from dc_master where id=? and version=?"); - + if (isPersistBatchOnCascade()) { + assertThat(sql).hasSize(6); + assertThat(sql.get(0)).contains("select t0.id from dc_detail t0 where master_id=?"); + assertThat(sql.get(1)).contains("delete from dc_detail where id=?"); + assertSqlBind(sql, 2, 4); + assertThat(sql.get(5)).contains("delete from dc_master where id=? and version=?"); + } awaitListenerPropagation(); List beans = DcListener.deletedBeans(); diff --git a/src/test/java/org/tests/iud/TestPersistCascade.java b/src/test/java/org/tests/iud/TestPersistCascade.java index 853360e37..ac989ac44 100644 --- a/src/test/java/org/tests/iud/TestPersistCascade.java +++ b/src/test/java/org/tests/iud/TestPersistCascade.java @@ -1,8 +1,6 @@ package org.tests.iud; import io.ebean.BaseTestCase; -import io.ebean.DB; -import io.ebean.Transaction; import org.avaje.moduuid.ModUUID; import org.junit.Test; @@ -15,7 +13,7 @@ public class TestPersistCascade extends BaseTestCase { for (int a = 0; a < 3; a++) { PcfPerson mayor = createPerson(); PcfPerson viceMayor = createPerson(); - country.addCity(new PcfCity("c_" + ModUUID.newShortId(), mayor, viceMayor)); + country.addCity(new PcfCity("city_" + ModUUID.newShortId(), mayor, viceMayor)); } // try (Transaction txn = DB.beginTransaction()) { // txn.setBatchSize(20); @@ -32,7 +30,7 @@ public class TestPersistCascade extends BaseTestCase { } private static PcfPerson createPerson() { - PcfPerson person = new PcfPerson("per_" + ModUUID.newShortId()); + PcfPerson person = new PcfPerson("person_" + ModUUID.newShortId()); for (int a = 0; a < 2; a++) { PcfCalendar calendar = new PcfCalendar(); for (int b = 0; b < 10; b++) { diff --git a/src/test/java/org/tests/merge/TestMergeCustomer.java b/src/test/java/org/tests/merge/TestMergeCustomer.java index 6990a8f65..f46cf8f3a 100644 --- a/src/test/java/org/tests/merge/TestMergeCustomer.java +++ b/src/test/java/org/tests/merge/TestMergeCustomer.java @@ -79,7 +79,6 @@ public class TestMergeCustomer extends BaseTestCase { @Test public void customerWithAddresses_setClientGeneratedIds_expect_selectAndUpdate() { - MCustomer mCustomer = partial("cust3", "(id,name,version,shippingAddress(*),billingAddress(*))"); mCustomer.setName("NotCust3"); mCustomer.getBillingAddress().setStreet("modBillStreet"); @@ -96,11 +95,11 @@ public class TestMergeCustomer extends BaseTestCase { server().merge(mCustomer, options); List sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(4); + assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("select t0.id, t2.id, t1.id from mcustomer t0 left join maddress t2 on t2.id = t0.shipping_address_id left join maddress t1 on t1.id = t0.billing_address_id where t0.id = ?"); assertThat(sql.get(1)).contains("update maddress set street=?, city=?, version=? where id=? and version=?"); - assertThat(sql.get(2)).contains("update maddress set street=?, city=?, version=? where id=? and version=?"); - assertThat(sql.get(3)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); + assertSqlBind(sql, 2, 3); + assertThat(sql.get(4)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); } @Test @@ -125,11 +124,13 @@ public class TestMergeCustomer extends BaseTestCase { server().merge(mCustomer, options); List sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(4); + assertThat(sql).hasSize(6); assertThat(sql.get(0)).contains("select t0.id, t2.id, t1.id from mcustomer t0 left join maddress t2 on t2.id = t0.shipping_address_id left join maddress t1 on t1.id = t0.billing_address_id where t0.id = ?"); - assertThat(sql.get(1)).contains("update maddress set street=?, city=?, version=? where id=? and version=?"); - assertThat(sql.get(2)).contains("insert into maddress (id, street, city, version) values (?,?,?,?);"); - assertThat(sql.get(3)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); + assertThat(sql.get(1)).contains("insert into maddress (id, street, city, version) values (?,?,?,?)"); + assertSqlBind(sql.get(2)); + assertThat(sql.get(3)).contains("update maddress set street=?, city=?, version=? where id=? and version=?"); + assertSqlBind(sql.get(4)); + assertThat(sql.get(5)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); } @Test @@ -156,15 +157,16 @@ public class TestMergeCustomer extends BaseTestCase { server().merge(mCustomer, options); List sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(5); + assertThat(sql).hasSize(7); assertThat(sql.get(0)).contains("select t0.id, t2.id, t1.id from mcustomer t0 left join maddress t2 on t2.id = t0.shipping_address_id left join maddress t1 on t1.id = t0.billing_address_id where t0.id = ?"); // Additional check to see if the address with the unknown UUID is 'insert' or 'update' assertThat(sql.get(1)).contains("select t0.id from maddress t0 where t0.id = ?"); - - assertThat(sql.get(2)).contains("update maddress set street=?, city=?, version=? where id=? and version=?"); - assertThat(sql.get(3)).contains("insert into maddress (id, street, city, version) values (?,?,?,?);"); - assertThat(sql.get(4)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); + assertThat(sql.get(2)).contains("insert into maddress (id, street, city, version) values (?,?,?,?)"); + assertSqlBind(sql.get(3)); + assertThat(sql.get(4)).contains("update maddress set street=?, city=?, version=? where id=? and version=?"); + assertSqlBind(sql.get(5)); + assertThat(sql.get(6)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); } @Test @@ -212,11 +214,13 @@ public class TestMergeCustomer extends BaseTestCase { server().merge(mCustomer, options); List sql = LoggedSqlCollector.stop(); + if (isPersistBatchOnCascade()) { + assertThat(sql).hasSize(20); + } assertThat(sql.get(0)).contains("select t0.id, t1.id from mcustomer t0 left join mcontact t1 on t1.customer_id = t0.id where t0.id = ?"); assertThat(sql.get(1)).contains("delete from mcontact_message where contact_id = ?"); - assertThat(sql.get(2)).contains("delete from mcontact where id=?"); - - assertThat(sql.get(13)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); + assertThat(sql.get(3)).contains("delete from mcontact where id=?"); + assertThat(sql.get(19)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); } @@ -236,11 +240,13 @@ public class TestMergeCustomer extends BaseTestCase { server().merge(mCustomer, options); List sql = LoggedSqlCollector.stop(); + if (isPersistBatchOnCascade()) { + assertThat(sql).hasSize(20); + } assertThat(sql.get(0)).contains("select t0.id, t1.id from mcustomer t0 left join mcontact t1 on t1.customer_id = t0.id where t0.id = ?"); assertThat(sql.get(1)).contains("delete from mcontact_message where contact_id = ?"); - assertThat(sql.get(2)).contains("delete from mcontact where id=?"); - - assertThat(sql.get(13)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); + assertThat(sql.get(3)).contains("delete from mcontact where id=?"); + assertThat(sql.get(19)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); } @Test @@ -272,15 +278,18 @@ public class TestMergeCustomer extends BaseTestCase { server().merge(mCustomer, options); List sql = LoggedSqlCollector.stop(); - assertThat(sql.get(0)).contains("select t0.id, t1.id from mcustomer t0 left join mcontact t1 on t1.customer_id = t0.id where t0.id = ?"); - assertThat(sql.get(1)).contains("delete from mcontact_message where contact_id = ?"); - assertThat(sql.get(2)).contains("delete from mcontact where id=?"); - - 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("-- bind("); - assertThat(sql.get(9)).contains("update mcontact set email=?, first_name=?, last_name=?, version=?, customer_id=? where id=? and version=?"); + assertThat(sql).hasSize(16); + assertThat(sql.get(0)).contains("select t0.id, t1.id from mcustomer t0 left join mcontact t1 on t1.customer_id = t0.id where t0.id = ?"); + assertThat(sql.get(1)).contains("delete from mcontact_message where contact_id = ?"); + assertThat(sql.get(3)).contains("delete from mcontact where id=?"); + assertThat(sql.get(7)).contains("update mcustomer set name=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); + } + + if (isPersistBatchOnCascade()) { + assertThat(sql.get(8)).contains("insert into mcontact"); + assertThat(sql.get(9)).contains("-- bind("); + assertThat(sql.get(11)).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=?"); @@ -305,35 +314,28 @@ public class TestMergeCustomer extends BaseTestCase { .setDeletePermanent() .build(); - LoggedSqlCollector.start(); server().merge(cust1, options); List sql = LoggedSqlCollector.stop(); - assertThat(sql.get(0)).contains("select t0.id, t3.id, t1.id, t2.id from mcustomer t0 left join maddress t3 on t3.id = t0.shipping_address_id left join maddress t1 on t1.id = t0.billing_address_id left join mcontact t2 on t2.customer_id = t0.id where t0.id = ?"); - if (isH2() || isHana()) { - // with nested OneToMany .. we need a second query to read the contact message ids - assertThat(sql.get(1)).contains("select t0.contact_id, t0.id from mcontact_message t0 where (t0.contact_id) in (?,?,?,?,?,?,?,?,?,?)"); - } - assertThat(sql.get(2)).contains("delete from mcontact_message where contact_id = ?"); - assertThat(sql.get(3)).contains("delete from mcontact where id=?"); - assertThat(sql.get(4)).contains("delete from mcontact_message where contact_id = ?"); - assertThat(sql.get(5)).contains("delete from mcontact where id=?"); - - assertThat(sql.get(6)).contains("update maddress set street=?, city=?, version=? where id=? and version=?"); - assertThat(sql.get(7)).contains("update mcustomer set name=?, notes=?, version=?, shipping_address_id=?, billing_address_id=? where id=? and version=?"); - if (isPersistBatchOnCascade()) { - assertThat(sql.get(8)).contains("insert into mcontact"); - 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"); + assertThat(sql.get(0)).contains("select t0.id, t3.id, t1.id, t2.id from mcustomer t0 left join maddress t3 on t3.id = t0.shipping_address_id left join maddress t1 on t1.id = t0.billing_address_id left join mcontact t2 on t2.customer_id = t0.id where t0.id = ?"); + if (isH2() || isHana()) { + // with nested OneToMany .. we need a second query to read the contact message ids + assertThat(sql.get(1)).contains("select t0.contact_id, t0.id from mcontact_message t0 where (t0.contact_id) in (?,?,?,?,?,?,?,?,?,?)"); + } + assertThat(sql.get(2)).contains("delete from mcontact_message where contact_id = ?"); + assertThat(sql.get(4)).contains("delete from mcontact where id=?"); + assertThat(sql.get(5)).contains("delete from mcontact_message where contact_id = ?"); + assertThat(sql.get(7)).contains("delete from mcontact where id=?"); + + assertThat(sql.get(8)).contains("update maddress set street=?, city=?, version=? where id=? and version=?"); + assertThat(sql.get(13)).contains("update mcontact set email=?, first_name=?, last_name=?, version=?, customer_id=? where id=? and version=?"); + assertSqlBind(sql, 14, 17); + assertThat(sql.get(18)).contains("update mcontact_message set title=?, subject=?, notes=?, version=?, contact_id=? where id=? and version=?"); + assertSqlBind(sql, 19, 22); } - } private void modify(MCustomer cust) { diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java index c4bd282d0..ceff9db4f 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java @@ -131,11 +131,12 @@ public class TestElementCollectionBasic extends BaseTestCase { List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(7); 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 (?,?)"); - assertSqlBind(sql, 3, 5); + assertSqlBind(sql.get(2)); + assertThat(sql.get(3)).contains("insert into ec_person_phone (owner_id,phone) values (?,?)"); + assertSqlBind(sql, 4, 6); } else { assertThat(sql).hasSize(5); @@ -214,10 +215,11 @@ public class TestElementCollectionBasic extends BaseTestCase { List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(8); + assertThat(sql).hasSize(9); assertThat(sql.get(0)).contains("delete from ec_person_phone where owner_id=?"); - assertThat(sql.get(1)).contains("insert into ec_person_phone (owner_id,phone) values (?,?)"); - assertSqlBind(sql, 2, 7); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("insert into ec_person_phone (owner_id,phone) values (?,?)"); + assertSqlBind(sql, 3, 8); } else { assertThat(sql).hasSize(7); diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicCache.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicCache.java index e36c86a53..eaebe3f78 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicCache.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicCache.java @@ -43,8 +43,8 @@ public class TestElementCollectionBasicCache extends BaseTestCase { sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); - assertSqlBind(sql, 3, 5); + assertThat(sql).hasSize(7); + assertSqlBind(sql, 4, 6); } else { assertThat(sql).hasSize(5); } @@ -69,7 +69,7 @@ public class TestElementCollectionBasicCache extends BaseTestCase { sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); // cache hit + assertThat(sql).hasSize(7); // cache hit } else { assertThat(sql).hasSize(5); // cache hit } diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMap.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMap.java index 225a7316d..1acc66fb9 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMap.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMap.java @@ -105,11 +105,12 @@ public class TestElementCollectionBasicMap extends BaseTestCase { List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(7); assertThat(sql.get(0)).contains("update ecm_person set name=?, version=? where id=? and version=?"); assertThat(sql.get(1)).contains("delete from ecm_person_phone_numbers where ecm_person_id=?"); - assertThat(sql.get(2)).contains("insert into ecm_person_phone_numbers (ecm_person_id,type,number) values (?,?,?)"); - assertSqlBind(sql, 3, 5); + assertSqlBind(sql.get(2)); + assertThat(sql.get(3)).contains("insert into ecm_person_phone_numbers (ecm_person_id,type,number) values (?,?,?)"); + assertSqlBind(sql, 4, 6); } else { assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("update ecm_person set name=?, version=? where id=? and version=?"); @@ -139,10 +140,11 @@ public class TestElementCollectionBasicMap extends BaseTestCase { List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(7); assertThat(sql.get(0)).contains("delete from ecm_person_phone_numbers where ecm_person_id=?"); - assertThat(sql.get(1)).contains("insert into ecm_person_phone_numbers (ecm_person_id,type,number) values (?,?,?)"); - assertSqlBind(sql, 2, 5); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("insert into ecm_person_phone_numbers (ecm_person_id,type,number) values (?,?,?)"); + assertSqlBind(sql, 3, 6); } else { assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("delete from ecm_person_phone_numbers where ecm_person_id=?"); diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMapCache.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMapCache.java index 3e33693c9..2da2d9d1f 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMapCache.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMapCache.java @@ -45,8 +45,8 @@ public class TestElementCollectionBasicMapCache extends BaseTestCase { sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); - assertSqlBind(sql, 3, 5); + assertThat(sql).hasSize(7); + assertSqlBind(sql, 4, 6); } else { assertThat(sql).hasSize(5); } @@ -73,8 +73,8 @@ public class TestElementCollectionBasicMapCache extends BaseTestCase { sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(4); // cache hit - assertSqlBind(sql, 2, 3); + assertThat(sql).hasSize(5); // cache hit + assertSqlBind(sql, 3, 4); } else { assertThat(sql).hasSize(3); // cache hit } diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicSet.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicSet.java index ea0e3c213..ce5ae70d2 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicSet.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicSet.java @@ -103,11 +103,12 @@ public class TestElementCollectionBasicSet extends BaseTestCase { List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(7); assertThat(sql.get(0)).contains("update ecs_person set name=?, version=? where id=? and version=?"); assertThat(sql.get(1)).contains("delete from ecs_person_phone where ecs_person_id=?"); - assertThat(sql.get(2)).contains("insert into ecs_person_phone (ecs_person_id,phone) values (?,?)"); - assertSqlBind(sql, 3, 5); + assertSqlBind(sql.get(2)); + assertThat(sql.get(3)).contains("insert into ecs_person_phone (ecs_person_id,phone) values (?,?)"); + assertSqlBind(sql, 4, 6); } else { assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("update ecs_person set name=?, version=? where id=? and version=?"); @@ -137,10 +138,11 @@ public class TestElementCollectionBasicSet extends BaseTestCase { List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(7); assertThat(sql.get(0)).contains("delete from ecs_person_phone where ecs_person_id=?"); - assertThat(sql.get(1)).contains("insert into ecs_person_phone (ecs_person_id,phone) values (?,?)"); - assertSqlBind(sql, 2, 5); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("insert into ecs_person_phone (ecs_person_id,phone) values (?,?)"); + assertSqlBind(sql, 3, 6); } else { assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("delete from ecs_person_phone where ecs_person_id=?"); diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedList.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedList.java index 923054961..a0ae131a3 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedList.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedList.java @@ -103,11 +103,12 @@ public class TestElementCollectionEmbeddedList extends BaseTestCase { List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(7); assertThat(sql.get(0)).contains("update ecbl_person set name=?, version=? where id=? and version=?"); assertThat(sql.get(1)).contains("delete from ecbl_person_phone_numbers where person_id=?"); - assertThat(sql.get(2)).contains("insert into ecbl_person_phone_numbers (person_id,country_code,area,number) values (?,?,?,?)"); - assertSqlBind(sql, 3, 5); + assertSqlBind(sql.get(2)); + assertThat(sql.get(3)).contains("insert into ecbl_person_phone_numbers (person_id,country_code,area,number) values (?,?,?,?)"); + assertSqlBind(sql, 4, 6); } else { assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("update ecbl_person set name=?, version=? where id=? and version=?"); @@ -137,10 +138,11 @@ public class TestElementCollectionEmbeddedList extends BaseTestCase { List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(7); assertThat(sql.get(0)).contains("delete from ecbl_person_phone_numbers where person_id=?"); - assertThat(sql.get(1)).contains("insert into ecbl_person_phone_numbers (person_id,country_code,area,number) values (?,?,?,?)"); - assertSqlBind(sql, 2, 5); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("insert into ecbl_person_phone_numbers (person_id,country_code,area,number) values (?,?,?,?)"); + assertSqlBind(sql, 3, 6); } else { assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("delete from ecbl_person_phone_numbers where person_id=?"); diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache.java index a1153b074..ee312390d 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache.java @@ -48,10 +48,11 @@ public class TestElementCollectionEmbeddedListCache extends BaseTestCase { sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(4); // update of collection only + assertThat(sql).hasSize(5); // update of collection only assertThat(sql.get(0)).contains("delete from ecbl_person_phone_numbers where person_id=?"); - assertThat(sql.get(1)).contains("insert into ecbl_person_phone_numbers (person_id,country_code,area,number) values (?,?,?,?)"); - assertSqlBind(sql, 2, 3); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("insert into ecbl_person_phone_numbers (person_id,country_code,area,number) values (?,?,?,?)"); + assertSqlBind(sql, 3, 4); } else { assertThat(sql).hasSize(3); // update of collection only assertThat(sql.get(0)).contains("delete from ecbl_person_phone_numbers where person_id=?"); @@ -76,7 +77,7 @@ public class TestElementCollectionEmbeddedListCache extends BaseTestCase { Ebean.save(three); sql = LoggedSqlCollector.current(); - assertThat(sql).hasSize(4); + assertThat(sql).hasSize(5); EcblPerson four = Ebean.find(EcblPerson.class) .setId(person.getId()) diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedMap.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedMap.java index 5d13fcf5e..45de1a327 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedMap.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedMap.java @@ -96,11 +96,11 @@ public class TestElementCollectionEmbeddedMap extends BaseTestCase { List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(7); assertThat(sql.get(0)).contains("update ecbm_person set name=?, version=? where id=? and version=?"); assertThat(sql.get(1)).contains("delete from ecbm_person_phone_numbers where person_id=?"); - assertThat(sql.get(2)).contains("insert into ecbm_person_phone_numbers (person_id,mkey,country_code,area,number)"); - assertSqlBind(sql, 3, 5); + assertThat(sql.get(3)).contains("insert into ecbm_person_phone_numbers (person_id,mkey,country_code,area,number)"); + assertSqlBind(sql, 4, 6); } else { assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("update ecbm_person set name=?, version=? where id=? and version=?"); @@ -130,10 +130,11 @@ public class TestElementCollectionEmbeddedMap extends BaseTestCase { List sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { - assertThat(sql).hasSize(6); + assertThat(sql).hasSize(7); assertThat(sql.get(0)).contains("delete from ecbm_person_phone_numbers where person_id=?"); - assertThat(sql.get(1)).contains("insert into ecbm_person_phone_numbers (person_id,mkey,country_code,area,number) values (?,?,?,?,?)"); - assertSqlBind(sql, 2, 5); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("insert into ecbm_person_phone_numbers (person_id,mkey,country_code,area,number) values (?,?,?,?,?)"); + assertSqlBind(sql, 3, 6); } else { assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("delete from ecbm_person_phone_numbers where person_id=?"); diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedMapCache.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedMapCache.java index 9fe0ecc21..8f9b55f9b 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedMapCache.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedMapCache.java @@ -49,15 +49,17 @@ public class TestElementCollectionEmbeddedMapCache extends BaseTestCase { sql = LoggedSqlCollector.current(); if (isPersistBatchOnCascade()) { + assertThat(sql).hasSize(5); // update of collection only + assertThat(sql.get(0)).contains("delete from ecbm_person_phone_numbers where person_id=?"); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("insert into ecbm_person_phone_numbers (person_id,mkey,country_code,area,number) values (?,?,?,?,?)"); + assertSqlBind(sql, 3, 4); + } else { assertThat(sql).hasSize(4); // update of collection only assertThat(sql.get(0)).contains("delete from ecbm_person_phone_numbers where person_id=?"); - assertThat(sql.get(1)).contains("insert into ecbm_person_phone_numbers (person_id,mkey,country_code,area,number) values (?,?,?,?,?)"); - assertSqlBind(sql, 2, 3); - } else { - assertThat(sql).hasSize(3); // update of collection only - assertThat(sql.get(0)).contains("delete from ecbm_person_phone_numbers where person_id=?"); - assertThat(sql.get(1)).contains("insert into ecbm_person_phone_numbers (person_id,mkey,country_code,area,number) values (?,?,?,?,?)"); + assertSqlBind(sql.get(1)); assertThat(sql.get(2)).contains("insert into ecbm_person_phone_numbers (person_id,mkey,country_code,area,number) values (?,?,?,?,?)"); + assertThat(sql.get(3)).contains("insert into ecbm_person_phone_numbers (person_id,mkey,country_code,area,number) values (?,?,?,?,?)"); } EcbmPerson three = Ebean.find(EcbmPerson.class) @@ -77,7 +79,7 @@ public class TestElementCollectionEmbeddedMapCache extends BaseTestCase { Ebean.save(three); sql = LoggedSqlCollector.current(); - assertThat(sql).hasSize(4); + assertThat(sql).hasSize(5); EcbmPerson four = Ebean.find(EcbmPerson.class) .setId(person.getId()) diff --git a/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanRemove.java b/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanRemove.java index f6c2d340e..66c90d86f 100644 --- a/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanRemove.java +++ b/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanRemove.java @@ -34,19 +34,21 @@ public class TestOneToOneOrphanRemove extends BaseTestCase { Ebean.save(jack); List sql = LoggedSqlCollector.current(); - assertThat(sql).hasSize(4); + assertThat(sql).hasSize(5); 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"); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("update oto_cust set version=? where cid=? and version=?"); + assertThat(sql.get(3)).contains("insert into oto_cust_address "); + assertThat(sql.get(4)).contains("-- bind(other1"); jack.setAddress(null); Ebean.save(jack); sql = LoggedSqlCollector.stop(); - assertThat(sql).hasSize(2); + assertThat(sql).hasSize(3); 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=?"); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("update oto_cust set version=? where cid=? and version=?"); OtoCustAddress foundAddress = Ebean.find(OtoCustAddress.class, address2.getAid()); assertThat(foundAddress).isNull(); diff --git a/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanStringId.java b/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanStringId.java index 5f7a6f3f4..05c6258f5 100644 --- a/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanStringId.java +++ b/src/test/java/org/tests/model/onetoone/TestOneToOneOrphanStringId.java @@ -25,9 +25,10 @@ public class TestOneToOneOrphanStringId extends BaseTestCase { Ebean.save(b); List update = LoggedSqlCollector.current(); - assertThat(update).hasSize(2); + assertThat(update).hasSize(3); assertThat(update.get(0)).contains("insert into oto_aone"); - assertThat(update.get(1)).contains("update oto_atwo set aone_id=? where id=?"); + assertSqlBind(update.get(1)); + assertThat(update.get(2)).contains("update oto_atwo set aone_id=? where id=?"); Ebean.delete(b); @@ -50,9 +51,10 @@ public class TestOneToOneOrphanStringId extends BaseTestCase { Ebean.save(b); List inserts = LoggedSqlCollector.current(); - assertThat(inserts).hasSize(2); + assertThat(inserts).hasSize(3); assertThat(inserts.get(0)).contains("insert into oto_aone"); - assertThat(inserts.get(1)).contains("insert into oto_atwo"); + assertSqlBind(inserts.get(1)); + assertThat(inserts.get(2)).contains("insert into oto_atwo"); Ebean.delete(b); @@ -80,10 +82,12 @@ public class TestOneToOneOrphanStringId extends BaseTestCase { Ebean.save(b); List sql = LoggedSqlCollector.current(); - assertThat(sql).hasSize(3); + assertThat(sql).hasSize(5); assertThat(sql.get(0)).contains("insert into oto_aone"); - assertThat(sql.get(1)).contains("update oto_atwo set aone_id=? where id=?"); - assertThat(sql.get(2)).contains("delete from oto_aone where id=?"); + assertSqlBind(sql.get(1)); + assertThat(sql.get(2)).contains("update oto_atwo set aone_id=? where id=?"); + assertThat(sql.get(3)).contains("delete from oto_aone where id=?"); + assertSqlBind(sql.get(4)); Ebean.delete(b); @@ -91,7 +95,6 @@ public class TestOneToOneOrphanStringId extends BaseTestCase { assertThat(deletes).hasSize(2); assertThat(deletes.get(0)).contains("delete from oto_atwo"); assertThat(deletes.get(1)).contains("delete from oto_aone"); - } } diff --git a/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoin.java b/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoin.java index 0b207f938..704491740 100644 --- a/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoin.java +++ b/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoin.java @@ -12,7 +12,6 @@ import static org.assertj.core.api.Assertions.assertThat; public class TestOneToOnePrimaryKeyJoin extends BaseTestCase { - private OtoPrime insert(String desc) { OtoPrime prime = new OtoPrime("p" + desc); OtoPrimeExtra extra = new OtoPrimeExtra("e" + desc); @@ -50,7 +49,6 @@ public class TestOneToOnePrimaryKeyJoin extends BaseTestCase { assertThat(sqlOf(queryWithFetch, 10)).contains("select t0.pid, t0.name, t0.version, t1.eid, t1.extra, t1.version from oto_prime t0 join oto_prime_extra t1 on t1.eid = t0.pid where t0.pid = ?") .as("we join to oto_prime_extra"); - assertThat(oneWith.getExtra().getExtra()).isEqualTo("e" + desc); thenUpdate(oneWith); @@ -72,7 +70,6 @@ public class TestOneToOnePrimaryKeyJoin extends BaseTestCase { private void thenDelete(OtoPrime found) { - OtoPrime bean = Ebean.find(OtoPrime.class, found.getPid()); LoggedSqlCollector.start(); @@ -82,6 +79,5 @@ public class TestOneToOnePrimaryKeyJoin extends BaseTestCase { assertThat(sql).hasSize(2); assertThat(sql.get(0)).contains("delete from oto_prime_extra where"); assertThat(sql.get(1)).contains("delete from oto_prime where"); - } } diff --git a/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoinBidi.java b/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoinBidi.java index 7903abc02..b69faae57 100644 --- a/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoinBidi.java +++ b/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoinBidi.java @@ -12,7 +12,6 @@ import static org.assertj.core.api.Assertions.assertThat; public class TestOneToOnePrimaryKeyJoinBidi extends BaseTestCase { - private OtoUBPrime insert(String desc) { OtoUBPrime prime = new OtoUBPrime("u" + desc); OtoUBPrimeExtra extra = new OtoUBPrimeExtra("v" + desc); @@ -29,7 +28,6 @@ public class TestOneToOnePrimaryKeyJoinBidi extends BaseTestCase { assertThat(p1.getExtra().getEid()).isEqualTo(p1.getPid()).as("Same id values"); - Query query = Ebean.find(OtoUBPrime.class).setId(p1.getPid()); OtoUBPrime found = query.findOne(); @@ -50,7 +48,6 @@ public class TestOneToOnePrimaryKeyJoinBidi extends BaseTestCase { assertThat(sqlOf(queryWithFetch, 10)).contains("select t0.pid, t0.name, t0.version, t1.eid, t1.extra, t1.version, t1.eid from oto_ubprime t0 left join oto_ubprime_extra t1 on t1.eid = t0.pid where t0.pid = ?") .as("we join to oto_prime_extra"); - assertThat(oneWith.getExtra().getExtra()).isEqualTo("v" + desc); thenUpdate(oneWith); @@ -72,7 +69,6 @@ public class TestOneToOnePrimaryKeyJoinBidi extends BaseTestCase { private void thenDelete(OtoUBPrime found) { - OtoUBPrime bean = Ebean.find(OtoUBPrime.class, found.getPid()); LoggedSqlCollector.start(); @@ -82,6 +78,5 @@ public class TestOneToOnePrimaryKeyJoinBidi extends BaseTestCase { assertThat(sql).hasSize(2); assertThat(sql.get(0)).contains("delete from oto_ubprime_extra where"); assertThat(sql.get(1)).contains("delete from oto_ubprime where"); - } } diff --git a/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoinOptional.java b/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoinOptional.java index 38307fca0..7e0a2089b 100644 --- a/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoinOptional.java +++ b/src/test/java/org/tests/model/onetoone/TestOneToOnePrimaryKeyJoinOptional.java @@ -101,6 +101,5 @@ public class TestOneToOnePrimaryKeyJoinOptional extends BaseTestCase { assertThat(sql).hasSize(2); assertThat(sql.get(0)).contains("delete from oto_uprime_extra where"); assertThat(sql.get(1)).contains("delete from oto_uprime where"); - } } diff --git a/src/test/java/org/tests/model/orphanremoval/TestOrphanRemoveO2M.java b/src/test/java/org/tests/model/orphanremoval/TestOrphanRemoveO2M.java index 9988ffaff..a65004322 100644 --- a/src/test/java/org/tests/model/orphanremoval/TestOrphanRemoveO2M.java +++ b/src/test/java/org/tests/model/orphanremoval/TestOrphanRemoveO2M.java @@ -30,8 +30,9 @@ public class TestOrphanRemoveO2M extends BaseTestCase { assertThat(Ebean.find(OrpDetail.class, "d1")).isNull(); assertThat(Ebean.find(OrpDetail.class, "d2")).isNull(); - assertThat(sql).hasSize(2); + assertThat(sql).hasSize(3); assertThat(sql.get(0)).contains("delete from orp_detail where id=?"); + assertSqlBind(sql, 1, 2); } @Test diff --git a/src/test/java/org/tests/softdelete/TestSoftDeleteStatelessUpdate.java b/src/test/java/org/tests/softdelete/TestSoftDeleteStatelessUpdate.java index cf06b2c0f..5b9738b7f 100644 --- a/src/test/java/org/tests/softdelete/TestSoftDeleteStatelessUpdate.java +++ b/src/test/java/org/tests/softdelete/TestSoftDeleteStatelessUpdate.java @@ -40,7 +40,7 @@ public class TestSoftDeleteStatelessUpdate extends BaseTestCase { DB.update(upd); List sql = LoggedSql.collect(); - assertThat(sql).hasSize(5); + assertThat(sql).hasSize(6); 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/resources/ebean.properties b/src/test/resources/ebean.properties index 85fd153cc..5538bdeac 100644 --- a/src/test/resources/ebean.properties +++ b/src/test/resources/ebean.properties @@ -22,7 +22,7 @@ ebean.ddl.generate=true ebean.ddl.run=true ebean.ddl.header=-- Generated by ebean ${version} at ${timestamp} ebean.packages=org.tests -datasource.default=h2 +datasource.default=pg ebean.dumpMetricsOnShutdown=true ebean.dumpMetricsOptions=sql,hash