【发布时间】:2013-03-17 23:05:38
【问题描述】:
查看此链接: When does @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) commit?
B 怎么可能是正确的答案?我认为使用 REQUIRES_NEW 注释的方法会在外部暂停事务继续之前提交。
我之所以问这个问题,是因为我在 for 循环中从另一个 bean 的 requires_new 开始的事务方面看到了奇怪的行为。就像 Aby 在 for 循环中调用 bob 一样。如果其中一个事务由于例如 UniqueConstraintViolation 而回滚,则 HSQLDB 和 db2 也会间歇性地回滚先前的事务,并且间歇性地只有事务失败,并提交其他事务。只有当我重新启动我的 jboss 时,行为才会改变。当事务失败并且我得到前一个事务回滚的行为时,我还会得到一个 jdbcException: Connection closed in the next call from the loop。 所以,首先我想知道 requires_new 的预期行为。我正在使用 Hibernate、jboss 5、CMT、db2 和内存中的 HSQLDB(我已经尝试过 1.8 版本和 2.2.9) 谢谢!
【问题讨论】:
标签: hibernate jakarta-ee jboss hsqldb container-managed