【发布时间】:2011-04-30 17:51:30
【问题描述】:
我有一个@Stateless EJB 方法,我在其中
- 从数据库中删除一些条目
使用 JPA
remove()'s - 抛出一个注释为
@ApplicationException(rollback=true)的异常
该方法没有其他特定于事务的注释(我设置了@TransactionAttribute(TransactionAttributeType.REQUIRED),但无论如何这应该是默认值!)。事务是容器管理的。 JPA 提供者是 EclipseLink。
而且,当异常被抛出时,事务并没有回滚。例如。我在回滚之前从数据库中删除的条目不会回来。顺便提一句。我在抛出之前调用 entityManager.flush(),它会导致这种行为(它不应该)吗?
我也尝试调用SessionContext.setRollbackOnly(),结果相同。
如何调试这个问题?
我正在使用 Glassfish v3 和 Netbeans 进行调试,但我对 println 也同样满意,我只是不知道将它们放在哪里......
【问题讨论】:
-
你有没有弄清楚你的实际问题是什么?听起来和我的很像。 stackoverflow.com/questions/8761922/…
标签: transactions jpa-2.0 java-ee-6 ejb-3.1