hibernate中JTA,JPA和Plain JDBC之间的区别

Aas*_*osh 54 java hibernate jpa jta jdbc

就hibernate而言,JTA,JPA和Plain JDBC有什么区别?

Boz*_*zho 79

为了存在差异,应该有一些共同点,除了与数据库相关(虽然JTA不仅仅是那个),它们没有更多共同点:

  • JPA是Java对象关系映射的标准 - 它指定了一组注释和一个接口 - EntityManager用于对映射对象执行持久性操作.Hibernate实现了JPA标准

  • 普通JDBC是一种访问数据库的技术.这是Hibernate实际用于执行数据库操作的内容,"引擎盖下".它使用JDBC将查询发送到数据库.

  • JTA是一个事务API,它在Hibernate中是可选的.它(逻辑上)处理事务行为.

  • 那么在使用实体管理器时,JTA是负责回滚和提交的?那么JPA正在使用JTA?或者当你说2个数据库副本时使用JTA?请回答我很困惑 (3认同)

oze*_*ray 28

JDBC是数据库连接的Java标准.

JPA将Java开发人员与JDBC和数据库操作的内部工作隔离开来.

Hibernate,EclipseLink,OpenJPA和Data Nucleus都是着名的JPA实现.

JTA是事务的标准,允许管理多个数据库之间的多个事务.

JPA利用JDBC进行数据库连接和SQL相关操作,并且 - 可选地 - 利用JTA将分布式事务管理细节委托给它.


Pra*_*h P 5

JPA(Java Persistence API)是用于在关系数据库中存储、访问和管理 Java 对象的 Java ORM 标准/规范。Hibernate 是 Java Persistence API (JPA) 规范的实现。

JTA(Java 事务 API)是分布式事务的 Java 标准/规范。当您的事务跨越多个连接/数据库/资源​​时,它就会出现。Atomikos 是 JTA 的一个实现。(像 IBM Websphere 这样的应用服务器有自己的 JTA 实现。)