【发布时间】:2011-06-01 09:06:44
【问题描述】:
我们正在重新考虑我们的技术堆栈,以下是我们的选择(由于应用程序的复杂性等,我们不能没有 Spring 和 Hibernate)。我们也在从 J2EE 1.4 迁移到 Java EE 5。
技术栈
- Java EE 5
- JPA 2.0(我知道 Java EE 5 只支持 JPA 1.0 但我们想使用 Hibernate 作为 JPA 提供者)
- 休眠 3.6.0(我们已经有 大量具有自定义类型的 hbm 文件 等等,所以我们不想迁移 他们此时到了JPA。这意味着 我们希望 jpa/hbm 映射都能正常工作 在一起,因此休眠状态为 JPA 提供程序而不是使用 App自带的默认 服务器)
现在的问题是我想坚持使用本地事务,但其他团队成员想使用 JTA。在过去的 9 年里,我一直在使用 J2EE,并且我一次又一次地听到有人建议如果我不需要两阶段提交就坚持使用本地事务。这不仅是出于性能原因,而且本地事务的调试/故障排除比 JTA 容易得多(即使 JTA 只在需要时进行单阶段提交)。
我的建议是使用spring声明式事务管理+本地事务(HibernateTransactionManager)而不是容器JTA
我想确定我是偏执狂还是我的观点是正确的。我想听听 Java EE 世界的其他人是怎么想的。或者请给我一篇合适的文章。
【问题讨论】: