我们正在重新考虑技术栈,以下是我们的选择(由于应用程序的复杂性,我们不能没有Spring和Hibernate)。我们还从J2EE 1.4迁移到Java EE 5。
技术栈
JPA 1.0,但我们要使用Hibernate
作为JPA提供者)
许多具有自定义类型的hbm文件
等等,所以我们不想迁移
他们在这个时候到了JPA。这表示
我们希望两个jpa/hbm映射都能正常工作
在一起,因此 hibernate
JPA提供程序,而不是使用
App随附的默认设置
服务器)
现在的问题是,我想坚持使用本地事务,而其他团队成员希望使用JTA。我从事J2EE的工作已经有9年了,我一次又一次听到有人建议如果我不需要两阶段提交,请坚持使用本地事务。这不仅是出于性能方面的考虑,而且本地事务的调试/故障排除也比JTA容易得多(即使JTA在需要时仅执行单阶段提交)。
我的建议是使用spring声明式事务管理+本地事务(HibernateTransactionManager)而不是容器JTA
我想确定自己是否偏执或有正确的观点。我想听听Java EE世界其他人的想法。或请给我指出适当的文章。
最佳答案
JTA并不意味着两个阶段的提交。我认为,正是JTA和XA驱动程序的结合使两阶段提交成为可能。
我仍然建议使用JTA和声明式事务,而不是在代码中嵌入事务逻辑。最好以面向方面的方式( Spring )完成交易。
更新:
关于您发布的其他信息,我同意您的观点。我建议使用Spring声明式事务和HibernateTransactionManager类。