Разница между JTA, JPA и Plain JDBC в спящем режиме

В чем разница между JTA, JPA и Plain JDBC с точки зрения Hibernate?


person Aashutosh    schedule 11.10.2010    source источник


Ответы (3)


Чтобы разница существовала, должно быть что-то общее, и кроме того, что они связаны с базой данных (хотя JTA не только это), у них больше ничего общего нет:

  • JPA — это стандарт для объектно-реляционного сопоставления Java — он определяет набор аннотаций и интерфейс -EntityManager для выполнения операций сохранения с сопоставленными объектами. Hibernate реализует стандарт JPA

  • простой JDBC — это технология доступа к базам данных. Это то, что Hibernate фактически использует для выполнения операций с базой данных «под капотом». Он использует JDBC для отправки запросов в базу данных.

  • JTA — это транзакционный API, и он является необязательным в Hibernate. Он обрабатывает (логически) поведение транзакции.

person Bozho    schedule 11.10.2010
comment
Итак, JTA отвечает за откат и фиксацию при использовании диспетчера сущностей? Итак, JPA использует JTA? Или JTA используется, когда у вас есть, скажем, 2 реплики базы данных? Пожалуйста ответьте я в замешательстве - person Ced; 03.06.2016
comment
In order for a difference to exist, there should be something in common - Что это за идея или факт? - person Koray Tugay; 26.11.2017
comment
@Ced, посмотри на ответ ниже. [ссылка на ответ: stackoverflow.com/a/59304566/7729614] - person Soufiane Roui; 28.10.2020

  • JDBC — это стандарт Java для подключения к базе данных.
  • JPA изолирует разработчика Java от внутренней работы JDBC и операций с базой данных. Hibernate, EclipseLink, OpenJPA и Data Nucleus — известные реализации JPA.
  • JTA — это стандарт для транзакций, позволяющий управлять несколькими транзакциями между несколькими базами данных.

JPA использует JDBC для соединений с базой данных и операций, связанных с SQL, и - опционально- использует JTA для делегирования ему деталей управления распределенными транзакциями.

person ozeray    schedule 05.04.2014

JPA (Java Persistence API) — это стандарт/спецификация Java ORM для хранения, доступа и управления объектами Java в реляционной базе данных. Hibernate — это реализация спецификации Java Persistence API (JPA).

JTA (Java Transaction API) — это стандарт/спецификация Java для распределенных транзакций. Это проявляется, когда у вас есть транзакции, которые охватывают несколько соединений/БД/ресурсов. Atomikos — это реализация JTA. (Серверы приложений, такие как IBM Websphere, имеют свои собственные реализации JTA.)

person Praveesh P    schedule 12.12.2019