Oracle
 sql >> Base de données >  >> RDS >> Oracle

Mappage d'une classe Entity sur deux bases de données différentes (Oracle et Ingres)

Pour cela, configurez deux unités de persistance pointant vers des bases de données différentes dans le fichier 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>

Le contexte de persistance est injecté à l'aide d'une annotation par le conteneur pour l'unité de persistance donnée.

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

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

Ensuite, vous pouvez effectuer des opérations sur les bases de données en utilisant l'instance entityManager respective.

Le nom/la structure de la table doit être identique dans les deux bases de données et éviter d'utiliser les fonctionnalités natives fournies par les fournisseurs pour la portabilité.