こんにちは、私は最初にDBテーブルの値をチェックし、存在しない場合は新しい値を生成してDBに挿入するアプリケーションを持っています.このループは約100万回繰り返されます.
私の労働者階級では: -
session=HibernateSessionFactory.getSession();
for(----loop
i check
i generate
then:-
MyTable myTable=new MyTable();
myTable.setName("dasdas");
myTable.setww("ss");
myTable.setaa("daaasdas");
hibernateRepositoy.save(dgCcno,session);
}
メソッド i を他のクラスに保存します:-
public void save(Object obj,Session session) {
Transaction tx = null;
try {
tx = session.beginTransaction();
session.saveOrUpdate(obj);
session.flush();
session.clear();
tx.commit();
}
catch (HibernateException e) {
e.printStackTrace();
logger.error(e.getMessage(), e);
if(tx!=null){
tx.rollback();
}
}
catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage(), e);
}
}
どうすればこれをスピードアップできますか、またはこれは正しいアプローチですか?
追加:- バッチ更新を使用できません。すぐに値を挿入する必要があります。次の選択クエリの値が同じになる可能性があるため、DB から値を指定する必要があります。