Múltiplos managadores de entidade em uma transação
-
28-09-2019 - |
Pergunta
Estou escrevendo um aplicativo que moverá dados de um banco de dados para outro usando a API JPA EntityManager. Minhas perguntas são: 1. Posso usar vários gerentes de entidade em uma única transação? 2. Posso ler uma entidade de um banco de dados e persistir na outra? Quais são os problemas que provavelmente encontrarão?
Solução
Posso usar vários gerentes de entidade em uma única transação?
Sim, usando o JTA. Não tenho certeza se você precisa de uma transação global no seu caso. Você está realmente mudando ou copiando entidades de um dB para o outro? No caso posterior, você pode usar duas transações sequencialmente.
Posso ler uma entidade de um banco de dados e persistir na outra?
Supondo que eles tenham a mesma estrutura e você não tenha nenhum PK conflitante, deve ser possível ler uma entidade usando um primeiro gerente de entidade, separá -lo e depois mesclá -lo usando outro gerenciador de entidades. Se você tiver possíveis conflitos de PK, precisará usar uma abordagem de bricolage (vs uma fusão simples).