Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Mapeando uma classe Entity para dois bancos de dados diferentes (Oracle e Ingres)


Para isso, configure duas unidades de persistência apontando para bancos de dados diferentes no arquivo persistence.xml.
<persistence>
   <persistence-unit name="oracleDB">
      <jta-data-source>java:/OracleDB</jta-data-source>
       ...
   </persistence-unit>

   <persistence-unit name="ingresDB">
      <jta-data-source>java:/ingresDB</jta-data-source>
       ...
   </persistence-unit>
</persistence>

O contexto de persistência é injetado usando a anotação do contêiner para a unidade de persistência fornecida.
   @PersistenceContext(unitName="oracleDB")
   private EntityManager oracleEntityManager;

   @PersistenceContext(unitName="ingresDB")
   private EntityManager ingresEntityManager;

Em seguida, você pode executar a operação em bancos de dados usando a respectiva instância entityManager.

O nome/estrutura da tabela deve ser o mesmo em ambos os bancos de dados e evite usar a funcionalidade nativa fornecida pelos fornecedores para portabilidade.