我有一个@Stateless EJB 方法,其中我
remove()
使用 JPA 从数据库中删除一些条目- 抛出一个注释为的异常
@ApplicationException(rollback=true)
我对该方法没有其他特定于事务的注释(我设置@TransactionAttribute(TransactionAttributeType.REQUIRED)
了,但无论如何这应该是默认值!)。事务是容器管理的。JPA 提供者是 EclipseLink。
而且,当抛出异常时,事务不会回滚。例如。我在回滚之前从数据库中删除的条目不会回来。顺便提一句。我在抛出之前调用 entityManager.flush(),它会导致这种行为(它不应该)吗?
我也尝试调用SessionContext.setRollbackOnly()
,结果相同。
我该如何调试这个问题?
我正在使用 Glassfish v3 和 Netbeans 进行调试,但我对 println 也同样满意,我只是不知道把它们放在哪里......