java - 我可以将 Hibernate 与 JTA 一起使用吗?

标签 java spring hibernate transactions jta

如果 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/

相关文章:

java - 将值动态附加到 long[] 数组中

java - Spring MVC : parse repeated request param

java - 创建名为 'entityManagerFactory' 的 bean 时出错 - 启动错误

java - IntelliJ "Could not autowire."检查,Spring JPA 存储库的 "[…] more than one bean"

java - 删除父实体而不删除子实体 (jpa)

java - 使用 ScheduledExecutorService 安排 Applet 启动

java - Jdeveloper实习生部署忽略Maven依赖

hibernate - 检索自动检测到的 hibernate 方言

java - 用于 Java Web 应用程序的最佳 Amazon 服务器实例

spring - 使用 spring Controller 和不同的类在 jsp 中渲染数据