Единица персистентности как RESOURCE_LOCAL или JTA?

У меня есть следующие запросы:

  1. В чем разница между этими двумя?
  2. Оба они поддерживаются всеми базами данных?
  3. Отличаются ли JPA TransactionManager и JTA TransactionManager?
85
задан informatik01 11 March 2015 в 21:41
поделиться

2 ответа

Реализации JPA имеют выбор между собственно управлением транзакциями (RESOURCE_LOCAL) или управлением ими с помощью JTA реализации сервера приложений.

В большинстве случаев RESOURCE_LOCAL - это нормально. Это будет использовать основные операции на уровне JDBC. Недостатком является то, что транзакция является локальным для JPA единицы стойкости, так что если вы хотите транзакцию, которая охватывает несколько единиц стойкости (или других баз данных), то RESOURCE_LOCAL может быть недостаточно хорошо.

JTA также используется для управления транзакциями в таких системах, как JMS и JCA, но это довольно экзотическое использование для большинства из нас.

Для использования JTA, вам нужна поддержка его в сервере приложений, а также поддержка из JDBC драйвера.

.
95
ответ дан 24 November 2019 в 08:15
поделиться

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

17
ответ дан 24 November 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: