У меня есть следующие запросы:
Реализации JPA имеют выбор между собственно управлением транзакциями (RESOURCE_LOCAL
) или управлением ими с помощью JTA реализации сервера приложений.
В большинстве случаев RESOURCE_LOCAL - это нормально. Это будет использовать основные операции на уровне JDBC. Недостатком является то, что транзакция является локальным для JPA единицы стойкости, так что если вы хотите транзакцию, которая охватывает несколько единиц стойкости (или других баз данных), то RESOURCE_LOCAL может быть недостаточно хорошо.
JTA также используется для управления транзакциями в таких системах, как JMS и JCA, но это довольно экзотическое использование для большинства из нас.
Для использования JTA, вам нужна поддержка его в сервере приложений, а также поддержка из JDBC драйвера.
.Resource_Local и JTA - менеджеры транзакций (методы проведения транзакций). Это не свойство БД, а компонент, отвечающий за координацию транзакций. JPA и JTA менеджеры транзакций отличаются друг от друга. Менеджер транзакций JPA отвечает за транзакции JPA, и вы хотите использовать его, если вы делаете только транзакции JPA. JTA менеджер транзакций является менеджером транзакций общего назначения и может привлекать другие ресурсы, такие как очереди JMS в транзакции. Обычно контейнеры Java EE используют JTA менеджер транзакций для EJB, JPA структур и т.д.