package org.tests.model.basic.xtra; import io.ebean.BaseTestCase; import io.ebean.Ebean; import io.ebean.Transaction; import io.ebean.PersistBatch; import org.ebeantest.LoggedSqlCollector; 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; public class TestInsertBatchThenUpdate extends BaseTestCase { @Test public void test() { if (isSqlServer()) return; LoggedSqlCollector.start(); Transaction txn = Ebean.beginTransaction(); try { txn.setBatch(PersistBatch.ALL); LoggedSqlCollector.start(); EdParent parent = new EdParent(); parent.setName("MyComputer"); EdChild child = new EdChild(); child.setName("Harddisk 123"); child.setParent(parent); ArrayList<EdChild> children = new ArrayList<>(); children.add(child); parent.setChildren(children); Ebean.save(parent); parent.setName("MyDesk"); Ebean.save(parent); Ebean.commitTransaction(); // insert statements for EdExtendedParent List<String> loggedSql = LoggedSqlCollector.stop(); assertEquals(3, loggedSql.size()); 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(); } } }