休止状態のセッションに本当に苦労しています。変更されたセッション オブジェクトに対してクエリを実行したときに期待する結果が得られません。私の問題はすべて関連していると思います。最後のものは次のとおりです。
final Session iSession = AbstractDAO.getSessionFactory().openSession();
try {
iSession.beginTransaction();
MyObject iObject = DAOMyObject.getInstance().get(iSession,ObjectId);
iObject.setQuantity(0); //previously the quantity was different from zero
DAOMyObject.getInstance().update(iSession,iObject);
DAOMyObject.getInstance().deleteObjectWithZeroQuantities(iSession);
iSession.getTransaction().commit();
} catch (final Exception aException) {
iSession.getTransaction().rollback();
logger.error(aException.getMessage(), aException);
throw aException;
} finally {
iSession.close();
}
私が取得していないのは、オブジェクトが削除されない理由です。セッションでオブジェクトを変更したため、削除を行うクエリはそれを見つける必要があります。セッションでインクリメンタル ID を持つオブジェクトを作成し、コミット前に同じセッションでselect max(id)+1
. しかし、セッションは毎回同じ数のIDを取得します。