package org.tests.batchinsert; import io.ebean.BaseTestCase; import io.ebean.Ebean; import io.ebean.EbeanServer; import io.ebean.Transaction; import io.ebean.annotation.Transactional; import io.ebean.PersistBatch; import org.tests.model.basic.EBasicVer; import org.junit.Test; import java.sql.Timestamp; import static org.junit.Assert.assertNotNull; public class TestBatchInsertFlush extends BaseTestCase { @Test @Transactional(batch = PersistBatch.ALL) public void transactional_flushOnGetId() { EbeanServer server = Ebean.getDefaultServer(); EBasicVer b1 = new EBasicVer("b1"); server.save(b1); EBasicVer b2 = new EBasicVer("b2"); server.save(b2); Integer id = b1.getId(); assertNotNull(id); EBasicVer b3 = new EBasicVer("b3"); server.save(b3); } @Test public void testFlushOnGetId() { EbeanServer server = Ebean.getDefaultServer(); Transaction txn = server.beginTransaction(); try { txn.setBatch(PersistBatch.ALL); EBasicVer b1 = new EBasicVer("b1"); server.save(b1, txn); EBasicVer b2 = new EBasicVer("b2"); server.save(b2, txn); Integer id = b1.getId(); assertNotNull(id); EBasicVer b3 = new EBasicVer("b3"); server.save(b3, txn); txn.commit(); } finally { txn.end(); } } @Test public void testFlushOnGetProperty() { EbeanServer server = Ebean.getDefaultServer(); Transaction txn = server.beginTransaction(); try { txn.setBatch(PersistBatch.ALL); EBasicVer b1 = new EBasicVer("b1"); server.save(b1, txn); EBasicVer b2 = new EBasicVer("b2"); server.save(b2, txn); // flush here Timestamp lastUpdate = b1.getLastUpdate(); assertNotNull(lastUpdate); EBasicVer b3 = new EBasicVer("b3"); server.save(b3, txn); txn.commit(); } finally { txn.end(); } } @Test public void testFlushOnSetProperty() { EbeanServer server = Ebean.getDefaultServer(); Transaction txn = server.beginTransaction(); try { txn.setBatch(PersistBatch.ALL); EBasicVer b1 = new EBasicVer("b1"); server.save(b1, txn); EBasicVer b2 = new EBasicVer("b2"); server.save(b2, txn); // flush here b1.setDescription("modify"); EBasicVer b3 = new EBasicVer("b3"); server.save(b3, txn); txn.commit(); } finally { txn.end(); } } }