Ответ 1
Чтобы существовала разница, должно быть что-то общее, и кроме того, что это связано с базой данных (хотя JTA - это не только), они не имеют ничего общего:
-
JPA является стандартом для объектно-реляционного сопоставления Java - он задает набор аннотаций и интерфейс -
EntityManager
для выполнения операций сохранения с отображенными объектами. Hibernate реализует стандарт JPA -
простой JDBC - это технология доступа к базам данных. Это то, что Hibernate фактически использует для выполнения операций с базой данных "под капотом". Он использует JDBC для отправки запросов в базу данных.
-
JTA - это API транзакций, и он является необязательным в Hibernate. Он обрабатывает (логически) поведение транзакции.