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

StackOverflow https://stackoverflow.com/questions/9005759

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top