企业级 Java 事务管理深度解析
在企业级 Java 开发中,事务管理是确保数据一致性和完整性的关键环节。本文将深入探讨容器管理事务(CMT)和 bean 管理事务(BMT)的相关概念,以及它们与 JPA 实体的交互方式,并通过具体示例展示如何在实际应用中使用这些事务管理机制。
1. 容器管理事务(CMT)
CMT 是 EJB 提供的一种声明式事务管理方式,容器会根据事务属性自动管理事务的开始、提交和回滚。
1.1 事务属性与事务状态
不同的事务属性会导致不同的事务传播行为,具体如下表所示:
| 事务属性 | 客户端事务 | 业务方法关联的事务 | 资源管理器关联的事务 |
| — | — | — | — |
| MANDATORY | 无 | 错误 | N/A |
| MANDATORY | Tc | Tc | Tc |
| NEVER | 无 | 无 | 无 |
| NEVER | Tc | 错误 | N/A |
| NOT_SUPPORTED | 无 | 无 | 无 |
| NOT_SUPPORTED | Tc | 无 | 无 |
| REQUIRED | 无 | Tm | Tm |
| REQUIRED | Tc | Tc | Tc |
| REQUIRES_NEW | 无 | Tm | Tm |
| REQUIRES_NEW | Tc | Tm | Tm |
| SUPPORTS | 无 | 无 | 无 |
| SUPPORTS | Tc | Tc | Tc |
从表中可以看出,不同的事
超级会员免费看
订阅专栏 解锁全文
919

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



