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