Hibernate не является реализацией JTA. Hibernate - это реализация JPA.
JTA - это спецификация транзакций для предприятий, реализованная провайдерами Java EE или менеджерами транзакций в режиме ожидания (например, Bitronix).
Hibernate предлагает абстракцию API транзакций, поскольку в инструментах ORM используется контекст сохранения состояния transactional write-behind.
Spring предлагает transaction management abstraction, что позволяет вам переключаться с RESOURCE_LOCAL на транзакции JTA только с некоторыми незначительными изменениями конфигурации.
Spring также может интегрироваться с абстракцией API спящего режима и JPA.
Если вы используете Spring, вам следует воспользоваться абстракцией управления транзакциями, поэтому вам не нужно использовать API транзакций Hibernate/JPA.
Поскольку Spring использует AOP, управление транзакциями отделено от вашей бизнес-логики, что было бы неверно, если бы вы использовали программный API транзакций Hibernate/JPA.
Весенние аннотации должны быть на ваш выбор. Выберите менеджера транзакций, который имеет смысл для вашего развертывания. – duffymo
Hibernate не обрабатывает транзакции, делает транзакционный менеджер. Вы устанавливаете [диспетчер транзакций] (https://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/transaction/TransactionFactory.html), а вызов метода в 'Session' просто делегирует эту транзакцию менеджер. То же самое с [Spring] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/transaction/PlatformTransactionManager.html). Фактический управляющий транзакцией обычно является только диспетчером транзакций данных, который устанавливает транзакции в соединениях JDBC. Более общий подход - JTA. –
Менеджер транзакций является частью JTA (что-то вроде enetityManager в JPA)? – user3528733