【发布时间】:2015-11-05 07:04:56
【问题描述】:
我有一项任务要完成,其中涉及在我的 EJB 事务回滚的情况下回滚对非事务性数据库的更改。
该项目使用容器管理的事务,业务逻辑涉及对 EJB 方法的调用,这些方法本身又调用其他 EJB 方法,因此事务跨越方法边界并涉及多个 EJB。
EJB 事务回滚工作正常,但我需要能够检测到它已经发生,然后触发一个尝试回滚其他非事务数据库的方法。
我想知道使用拦截器,但似乎我只能拦截特定的方法调用或特定的 EJB 生命周期事件。这对我的目的来说还不够。我需要拦截事务回滚事件。这可能吗?我在吠叫错误的树吗?也许还有另一种方法更适合我的目的。
我看到了一个相关问题,但它并没有真正帮助我,因为我有很多入口点、很多嵌套方法,而且我不能只拦截一个方法。
EJB Interceptors and transaction lifecycle OR how to intercept a commit/failure event?
【问题讨论】:
标签: jakarta-ee transactions interceptor