如果 JTA 是一个 API,我可以使用 Hibernate 作为 JTA 的实现吗?
我有一个使用 Spring 和 Hibernate 的应用程序,我想知道应该由哪个框架负责事务,Spring 还是 Hibernate?
最佳答案
Hibernate 不是 JTA 的实现。 Hibernate 是一种 JPA 实现。
JTA 是一种企业事务规范,由 Java EE 提供商或独立事务管理器(例如 Bitronix)实现。
Hibernate 提供事务 API 抽象,因为 ORM 工具采用事务性后写持久性上下文。
Spring 提供了事务管理抽象,它允许您从 RESOURCE_LOCAL
切换到 JTA
事务,只需进行一些微不足道的配置更改。
Spring 也设法在 Hibernate/JPA Transaction API 抽象之上进行集成。
如果您使用 Spring,那么您应该利用它的事务管理抽象,这样您就不必使用 Hibernate/JPA 事务 API。
因为 Spring 使用 AOP,所以事务管理与您的业务逻辑分离,如果您使用编程式 Hibernate/JPA 事务 API,情况就不会如此。
关于java - 我可以将 Hibernate 与 JTA 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28253838/