EJB 事务与拦截器深度解析
1. EJB 事务管理
在 EJB 开发中,事务管理是至关重要的一部分。不同类型的事务在遇到异常时,容器会采取不同的处理方式,以下是详细介绍:
| 事务类型 | 异常类型 | 容器操作 |
| — | — | — |
| 容器发起事务(transaction - type = Container,transaction - attribute = Not - Supported,未启动事务) | 系统异常 | 记录错误,丢弃实例 |
| 容器发起事务(transaction - type = Container,transaction - attribute = Not - Supported,未启动事务) | 应用异常 | 将异常重新抛给资源适配器 |
| Bean 管理事务(transaction - type = Bean,使用 EJBContext 显式管理事务) | 系统异常 | 回滚事务,记录错误,丢弃实例 |
| Bean 管理事务(transaction - type = Bean,使用 EJBContext 显式管理事务) | 应用异常 | 将异常重新抛给资源适配器 |
2. 事务性有状态会话 Bean
会话 Bean 既可以直接与数据库交互,也能管理其他企业 Bean 的任务流。无状态会话 Bean 没有会话状态,每次方法调用都必须立即对数据库进行更改。而有状态会话 Bean 则不同,我们可能希望在事务完成后再对数据库进行更改。因为有状态会话 Bean 可能是事务中的多个参与者之一,所以在整个事务提交之前推迟数据库更新,或者在事务回滚时避免更新是明智的做法。
超级会员免费看
订阅专栏 解锁全文
460

被折叠的 条评论
为什么被折叠?



