В чем разница между JTA
, JPA
и Plain JDBC
с точки зрения Hibernate?
Разница между JTA, JPA и Plain JDBC в спящем режиме
Ответы (3)
Чтобы разница существовала, должно быть что-то общее, и кроме того, что они связаны с базой данных (хотя JTA не только это), у них больше ничего общего нет:
JPA — это стандарт для объектно-реляционного сопоставления Java — он определяет набор аннотаций и интерфейс -
EntityManager
для выполнения операций сохранения с сопоставленными объектами. Hibernate реализует стандарт JPAпростой JDBC — это технология доступа к базам данных. Это то, что Hibernate фактически использует для выполнения операций с базой данных «под капотом». Он использует JDBC для отправки запросов в базу данных.
JTA — это транзакционный API, и он является необязательным в Hibernate. Он обрабатывает (логически) поведение транзакции.
In order for a difference to exist, there should be something in common
- Что это за идея или факт?
- person Koray Tugay; 26.11.2017
JDBC
— это стандарт Java для подключения к базе данных.JPA
изолирует разработчика Java от внутренней работы JDBC и операций с базой данных. Hibernate, EclipseLink, OpenJPA и Data Nucleus — известные реализации JPA.JTA
— это стандарт для транзакций, позволяющий управлять несколькими транзакциями между несколькими базами данных.
JPA
используетJDBC
для соединений с базой данных и операций, связанных с SQL, и - опционально- используетJTA
для делегирования ему деталей управления распределенными транзакциями.
JPA (Java Persistence API) — это стандарт/спецификация Java ORM для хранения, доступа и управления объектами Java в реляционной базе данных. Hibernate — это реализация спецификации Java Persistence API (JPA).
JTA (Java Transaction API) — это стандарт/спецификация Java для распределенных транзакций. Это проявляется, когда у вас есть транзакции, которые охватывают несколько соединений/БД/ресурсов. Atomikos — это реализация JTA. (Серверы приложений, такие как IBM Websphere, имеют свои собственные реализации JTA.)