Oracle
 sql >> Database >  >> RDS >> Oracle

Mappatura di una classe Entity su due database diversi (Oracle e Ingres)

A tale scopo, configura due unità di persistenza che puntano a database diversi nel file 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>

Il contesto di persistenza viene iniettato utilizzando l'annotazione dal contenitore per l'unità di persistenza specificata.

   @PersistenceContext(unitName="oracleDB")
   private EntityManager oracleEntityManager;

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

Quindi puoi eseguire operazioni sui database utilizzando la rispettiva istanza entityManager.

Il nome/struttura della tabella deve essere la stessa in entrambi i database ed evitare di utilizzare la funzionalità nativa fornita dai fornitori per la portabilità.