Могу ли я использовать два разных менеджера сущностей, которые указывают на один и тот же источник данных в одной транзакции? - PullRequest
2 голосов
/ 25 января 2012

Я использую весну с JPA.И у меня есть два EntityManager, которые содержат разные сущности (разные модули одного приложения), и оба указывают на один и тот же источник данных.

Могу ли я использовать их обоих в одной транзакции (используя один TransactionManager)?Должен ли я использовать JTA для этого?Если да, то какой вариант лучше использовать под tomcat?

Как мне настроить его весной?

1 Ответ

3 голосов
/ 25 января 2012

Как стандартные JPA-транзакции, так и Spring * JpaTransactionManager связаны с одним EntityManager. Они не могут общаться с несколькими менеджерами и поэтому не могут координировать транзакции между ними.

Если вам нужно сделать это, вам нужно либо объединить конфигурации вашего менеджера сущностей, чтобы у вас была только одна EntityManager, либо использовать транзакции JTA (через Spring JtaTransactionManager).

Если вы используете Tomcat (который не имеет встроенной поддержки JTA), вам нужно будет найти стороннюю реализацию JTA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...