私はplay1.2.4プロジェクトに取り組んでおり、4つのジョブを間隔を置いて実行し、(Webサービスから)バルクデータをフェッチしてデータベースに保存しています。
私の現在の一括挿入方法は次のようなものです。
org.hibernate.Session session =
(org.hibernate.Session)MyEntityModel.em().getDelegate();
Transaction tx = session.beginTransaction();
int i = 0;
for(Sales obj:sales)
{
convertToModelAndSave(obj);
i++;
if(i%100==0)
{
tx.commit();
session.flush();
session.clear();
tx=session.beginTransaction();
}
}
session.disconnect();
私は仕事が終わった後に単にセッションを切断しています。
これで十分かどうか疑問に思っていますが、本当にセッションを切断する必要がありますか(プログラムで例外が発生します)。データベース接続プールは切断後に解放されますか?