Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Zuordnen einer Entitätsklasse zu zwei verschiedenen Datenbanken (Oracle und Ingres)

Konfigurieren Sie zu diesem Zweck in der Datei persistence.xml zwei Persistenzeinheiten, die auf unterschiedliche Datenbanken verweisen.

<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>

Persistenzkontext wird unter Verwendung von Anmerkungen durch den Container für die angegebene Persistenzeinheit eingefügt.

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

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

Dann können Sie Operationen an Datenbanken durchführen, indem Sie die entsprechende entityManager-Instanz verwenden.

Tabellenname/-struktur muss in beiden Datenbanken gleich sein und vermeiden Sie die Verwendung nativer Funktionen, die von Anbietern für die Portabilität bereitgestellt werden.