TransactionAttributeType

TransactionAttributeType

看到这个链接:
When does @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) commit?

B如何成为正确答案?我以为带有REQUIRES_NEW注释的方法将在外部暂停的事务继续执行之前提交。

我之所以这样问,是因为在for循环中,从另一个bean的requires_new开始的事务中,我看到了奇怪的行为。就像Aby在for循环中调用bob一样。如果这些事务之一由于(例如)UniqueConstraintViolation而被回滚,则HSQLDB和db2也会间歇性地回滚先前的事务,并且间歇地仅使事务失败,然后提交其他事务。并且仅当我重新启动jboss时,行为才会改变。当事务失败并且出现先前事务回滚的行为时,我还会收到jdbcException:在循环的下一个调用中关闭了连接。
因此,首先我想知道require_new的预期行为。我正在使用Hibernate,jboss 5,CMT,db2和内存中的HSQLDB(我已经尝试过1.8版本和2.2.9)
谢谢!

最佳答案

所以我发现这就是奇怪行为的原因

jboss ignores requires_new after restart

并在链接中:

When does @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) commit?

替代方案a是正确答案,因此该帖子中的答案是错误的。

关于hibernate - @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)何时提交? - 跟进,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15666104/

10-10 19:31