2010-10-11 23 views

Respuesta

69

Para que exista una diferencia, debe haber algo en común, y aparte de ser la base de datos relacionados entre sí (aunque JTA no es sólo 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 las 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 API de transacción, y es opcional en Hibernate. Maneja (lógicamente) el comportamiento de la transacción.

+2

Entonces, ¿JTA es responsable de la reversión y se compromete al usar un administrador de entidades? Entonces JPA está usando JTA? ¿O se usa JTA cuando dice 2 réplicas de bases de datos? Por favor, responda Estoy confundido – Ced

+0

'Para que exista una diferencia, debe haber algo en común' - ¿Qué es esto una idea o un hecho? –

21

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

JPA aísla el 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 administración de transacciones distribuidas.

Cuestiones relacionadas