Несколько Entitismanagers в транзакции
-
28-09-2019 - |
Вопрос
Я пишу приложение, которое будет перемещать данные из одной базы данных в другую, используя API jpa entitymanager. Мои вопросы: 1. Могу ли я использовать несколько менеджеров сущностей в одной транзакции? 2. Могу ли я прочитать объект из одной базы данных и упорствовать в другой? Каковы проблемы, которые могут столкнуться?
Решение
Могу ли я использовать несколько менеджеров сущностей в одной транзакции?
Да, используя JTA. Я не уверен, что вам нужна глобальная транзакция в вашем случае, хотя. Вы действительно перемещаете или копируете сущности из одной БД на другую? В более позднем случае вы можете использовать две транзакции последовательно.
Могу ли я прочитать объект из одной базы данных и упорствовать в другой?
Предполагая, что у них такая же структура, и у вас нет никаких конфликтующих PK, должно быть возможно прочитать объект с использованием первого менеджера сущности, отсоединить его, а затем объединить его с использованием другого менеджера Entity. Если у вас есть возможные конфликты PK, вам придется использовать DIY подход (против простого сливания).