type transaction entre diferencia java hibernate jpa jdbc jta

java - transaction - Diferencia entre JTA, JPA y JDBC simple en Hibernate



jta vs jpa (2)

¿Cuál es la diferencia entre JTA, JPA y Plain JDBC en términos de hibernación?


JDBC es un estándar de Java para la conexión a la base de datos.

JPA aísla al desarrollador de Java del funcionamiento interno de JDBC y las operaciones de la base de datos.

Hibernate, EclipseLink, OpenJPA y Data Nucleus son implementaciones famosas de JPA.

JTA es un estándar para las transacciones, que permite la gestión de múltiples transacciones entre múltiples bases de datos.

JPA utiliza JDBC para conexiones de bases de datos y operaciones relacionadas con SQL, y -opcionalmente- utiliza JTA para delegarle detalles de gestión de transacciones distribuidas.


Para que exista una diferencia, debe haber algo en común, y además de estar relacionados con la base de datos (aunque JTA no es solo eso), no tienen nada más en común:

  • JPA es un estándar para mapeo relacional de objetos Java - especifica un conjunto de anotaciones y una interfaz - EntityManager para realizar operaciones de persistencia con los objetos mapeados. Hibernate implementa el estándar JPA

  • plain JDBC es una tecnología para acceder a bases de datos. Es lo que Hibernate realmente utiliza para realizar las operaciones de la base de datos, "debajo del capó". Utiliza JDBC para enviar consultas a la base de datos.

  • JTA es una transacción API, y es opcional en Hibernate. Maneja (lógicamente) el comportamiento de la transacción.