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