2

OpenJPA はHibernateと同様のバッチ挿入をサポートしていますか? 私はドキュメントでそれを見つけていませんが、見逃したことを願っています。JPAが一般的にサポートしていないことは知っています。

4

1 に答える 1

4

短い答え、はい。

より長い答えは、Hibernateドキュメントへのリンクを取得し、SessionをJPAEntityManagerに置き換えます。

EntityManager em = emf.createEntityManager();
Transaction tx = em.getTransaction();

tx.begin();   
for ( int i=0; i<100000; i++ ) {
    Customer customer = new Customer(.....);
    em.persist(customer);
    if ( i % 20 == 0 ) { //20, same as the JDBC batch size
        //flush a batch of inserts and release memory:
        em.flush();
        em.clear();
    }
}

tx.commit();
em.close();
于 2012-05-24T12:52:35.323 に答える