![]() |
1
16
从 events chapter 在CDI 1.0规范中,可以通过指定要观察的TransactionPhase来将事件定义为“transactional”,其中TransactionPhase是:
这样的声明看起来像:
如果观察者未声明为“事务性”,则容器将立即调用观察者,否则将使用JTA同步注册观察者方法,以便在事务完成阶段稍后调用。 然而:
如果观察者方法抛出异常(本身不是“事务性的”),则异常将中止对事件的处理。 因此,为了实现我正在寻找的行为,我相信我会将我的观察者注册为“transactional”,并指定“BEFORE_COMPLETION TransactionPhase”。如果我想回滚启动事件的事务,我将调用setRollbackOnly()。 |
![]() |
Vijay Kumar · 容器管理EJB中的Bean管理事务 9 年前 |
![]() |
a bouchenafa · “未捕获范围错误:超过了最大调用堆栈大小” 11 年前 |
![]() |
Richard Santana · 数据库架构不是在EAR应用程序中生成的 11 年前 |