【发布时间】:2012-08-25 04:43:06
【问题描述】:
我在 Play Framework 1.2.4 项目中使用无状态会话进行批处理作业。
我插入和更新行非常好,但我不知道发生异常时该怎么办。这是我的代码:
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 条记录?
如果是,我必须在约束违反异常中做什么?还是我应该在每 1 条记录中承诺以避免这种情况?
【问题讨论】:
-
我认为您应该向您的客户提出这个问题,而不是在这里.. 但是如果您在第 56 条记录处回滚而不提交 您将丢失之前的更改直到最后提交。
-
坦克,我不确定它是否只是回滚相应的数据或所有批次。
-
我还有一个问题,当我遇到异常时,我认为该对象仍在内存中,因为我的内存使用率越来越高,直到内存不足。发生异常时如何从内存中擦除该数据?
标签: hibernate playframework bulkinsert stateless-session