Отображение одного класса Entity на две разные базы данных (Oracle и Ingres) - PullRequest
0 голосов
/ 04 января 2011

Я новичок в ORM и JPA.У меня есть таблица Table1 в Ingres.Мне нужно скопировать Table1 из Ingres в Oracle.Я успешно подключился к обеим базам данных.Можно ли создать только один класс Entity с именем Table1, а затем выполнить эту операцию следующим образом: Получить список от Ingres, в котором есть все записи из Table1.Сохранять список (полностью, если не индивидуально по элементу сбора) в Oracle.

Буду признателен за ваши предложения и помощь.

Спасибо, PK

1 Ответ

2 голосов
/ 05 января 2011

Для этого настройте два постоянных модуля, указывающих на разные базы данных в файле 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>

Контекст постоянства внедряется с использованием аннотации контейнером для данного постоянного модуля.

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

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

Затем вы можете выполнять операции с базами данных, используя соответствующий экземпляр entityManager.

Имя / структура таблицы должны быть одинаковыми в обеих базах данных и избегать использования собственных функций, предоставляемых поставщиками для переносимости.

...