チーム、
休止状態で1つの奇妙な問題に直面しています。多くの削除が発生している場所。
たとえば、以下のコードを実行すると、EMPLOYEE テーブルからデータが削除され、一括挿入が行われます。
Session session = null;
Transaction tx = null;
try {
session = sessionFactory.openSession();
tx = session.beginTransaction();
String stringQuery = "DELETE FROM Employee";
Query query = session.createQuery(stringQuery);
query.executeUpdate();
session.flush();
session.clear();
Employee employee = null;
for (int i = 0; i < employeeList.size(); i++) {
Employee = employeeList
.get(i);
session.save(employee);
}
tx.commit();
}
catch (Exception e) {
if (tx != null)
tx.rollback();
}
finally {
if (session != null) {
session.close();
}
}
しかし、show SQL を有効にすると、"N" 個の削除が発生しており、すべての挿入が順番に実行されているように見えます。
私は tx.commit() にデバッガーを保持し、以下は Show-sql のアウトコードです
例: 同じステートメントのセットで無限ループに陥っているようです。
従業員から削除 従業員の値に
挿入従業員
から削除従業員の
値に挿入 従業員
から削除従業員の値
に挿入