我正在爲我的Play Framework 1.2.4項目中的批處理作業使用無狀態會話。Hibernate無狀態會話處理錯誤的最佳方式是什麼?
我插入和更新行相當不錯,但我不知道當發生異常時該怎麼辦。繼承人我的代碼:
try{
statelesssession.insert(someobject);
}
catch(ConstraintViolationException e) //It happens from time to time dont ask me why..
{
??????transaction.rollback();????? THATS MY CONCERN
}
finally{
transaction.commit();
}
我需要知道的是,我每隔100個插入提交數據。我想知道,如果約束條件發生在第56條記錄中,並且交易進行了回滾,我是否會失去其他55條記錄?
如果是的話,我在約束性違規行爲中必須做些什麼?或者我應該在每一條記錄中做出迴避?
我認爲您應該向您的客戶提出這個問題,而不是在這裏..但是如果您在沒有提交**的情況下回滾到第56條記錄,您將失去**以前的更改,直到最後一次提交。 – mericano1
坦克,我不確定它是否只是回滾相應的數據或所有批次。 – dreampowder
我還有另外一個問題,當我得到異常時,我認爲該內存仍然存在於內存中,因爲我的內存使用量越來越高,直到內存不足。發生異常時如何從內存中擦除數據? – dreampowder