You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi ,
I'm using version 6.1.1 of ebean, and integration it with spring .
when batch insertAll commited via spring's tx , it takes no effect , I found com.avaje.ebeaninternal.server.persist.BatchControl#flush(boolean) method did not called from spring's tx commit
==============================testcase=============================== @transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void batchTest(){
List<User> users = new ArrayList<User>();
for(int i=0 ;i<5;i++){
User user = new User();
user.setName("user"+i);
users.add(user);
}
System.out.println("---------before batch-------");
Transaction tx = ebeanServer.beginTransaction();
tx.setBatch(PersistBatch.NONE);
tx.setBatchOnCascade(PersistBatch.ALL);
tx.setBatchSize(20);
ebeanServer.saveAll(users);//
System.out.println("---------after batch-------");
}
it works ,but when I call insertAll method
==============================testcase=============================== @transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void batchTest(){
List<User> users = new ArrayList<User>();
for(int i=0 ;i<5;i++){
User user = new User();
user.setName("user"+i);
users.add(user);
}
System.out.println("---------before batch-------");
Transaction tx = ebeanServer.beginTransaction();
tx.setBatch(PersistBatch.NONE);
tx.setBatchOnCascade(PersistBatch.ALL);
tx.setBatchSize(20);
ebeanServer.insertAll(users);//
System.out.println("---------after batch-------");
}
futher more if i use setBatchMode(true) instead both saveAll and insertAll does not works
==============================testcase=============================== @transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void batchTest(){
List<User> users = new ArrayList<User>();
for(int i=0 ;i<5;i++){
User user = new User();
user.setName("user"+i);
users.add(user);
}
System.out.println("---------before batch-------");
Transaction tx = ebeanServer.beginTransaction();
tx.setBatchMode(true);
tx.setBatchSize(20);
ebeanServer.saveAll(users);// do not work
// ebeanServer.insertAll(users);// do not work either
If change the batch size smller it works some how
==============================testcase=============================== @transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void batchTest(){
List<User> users = new ArrayList<User>();
for(int i=0 ;i<5;i++){
User user = new User();
user.setName("user"+i);
users.add(user);
}
System.out.println("---------before batch-------");
Transaction tx = ebeanServer.beginTransaction();
tx.setBatchMode(true);
tx.setBatchSize(2);//change the batch size
ebeanServer.saveAll(users);// do not work
// ebeanServer.insertAll(users);// do not work either
Hi ,
I'm using version 6.1.1 of ebean, and integration it with spring .
when batch insertAll commited via spring's tx , it takes no effect , I found com.avaje.ebeaninternal.server.persist.BatchControl#flush(boolean) method did not called from spring's tx commit
==============================testcase===============================
@transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void batchTest(){
=============================result================================
---------before batch-------
18:40:38.196 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] BatchControl flush [User:100 i:5]
18:40:38.201 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(1,user0,)
18:40:38.202 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(2,user1,)
18:40:38.202 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(3,user2,)
18:40:38.203 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(4,user3,)
18:40:38.203 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(5,user4,)
18:40:38.204 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [1]
18:40:38.205 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [2]
18:40:38.205 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [3]
18:40:38.205 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [4]
18:40:38.205 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [5]
---------after batch-------
it works ,but when I call insertAll method
==============================testcase===============================
@transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void batchTest(){
=============================result================================
---------before batch-------
18:43:55.662 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(1,user0,)
18:43:55.665 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [1]
18:43:55.666 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(2,user1,)
18:43:55.667 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [2]
18:43:55.667 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(3,user2,)
18:43:55.667 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [3]
18:43:55.668 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(4,user3,)
18:43:55.668 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [4]
18:43:55.668 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(5,user4,)
18:43:55.669 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [5]
---------after batch-------
futher more if i use setBatchMode(true) instead both saveAll and insertAll does not works
==============================testcase===============================
@transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void batchTest(){
// ebeanServer.insertAll(users);// do not work either
=============================result================================
---------before batch-------
---------after batch-------
If change the batch size smller it works some how
==============================testcase===============================
@transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void batchTest(){
// ebeanServer.insertAll(users);// do not work either
=============================result================================
---------before batch-------
18:52:02.651 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] BatchControl flush [User:100 i:2]
18:52:02.656 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(1,user0,)
18:52:02.656 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(2,user1,)
18:52:02.658 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [1]
18:52:02.658 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [2]
18:52:02.658 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] BatchControl flush [User:100 i:2]
18:52:02.658 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(3,user2,)
18:52:02.659 [main] TRACE org.avaje.ebean.SQL - txn[s421637524] insert into user (oid, name) values (?,?); --bind(4,user3,)
18:52:02.659 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [3]
18:52:02.659 [main] DEBUG org.avaje.ebean.SUM - txn[s421637524] Inserted [User] [4]
---------after batch-------
The text was updated successfully, but these errors were encountered: