ドキュメントから
1000 000 行/オブジェクトを挿入する必要がある場合:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);
session.save(customer);
if ( i % 20 == 0 ) { //20, same as the JDBC batch size
//flush a batch of inserts and release memory:
session.flush();
session.clear();
}
}
tx.commit();
session.close();
なぜそのアプローチを使用する必要があるのでしょうか。StatelessSession 1 と比較して、どのような利点がありますか。
StatelessSession session = sessionFactory.openStatelessSession();
Transaction tx = session.beginTransaction();
for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);
session.insert(customer);
}
tx.commit();
session.close();
つまり、この(「代替」)最後の例はメモリを使用せず、同期する必要がなく、キャッシュを消去します。これは、このような場合のベストプラクティスであると思われますか? なぜ前のものを使用するのですか?