将一个Entity类映射到两个不同的数据库(Oracle和Ingres)

时间:2011-01-04 16:12:25

标签: oracle orm jpa entity ingres

我是ORM和JPA的新手。我在Ingres有一张名为Table1的表。我需要将Table1从Ingres复制到Oracle。我成功连接到两个数据库。是否可以只创建一个名为Table1的Entity类,然后按如下方式执行此操作: 从Ingres获取列表,其中包含Table1中的所有记录。 持久列表(完全,如果不是由收集元素单独)到Oracle。

感谢您的建议和帮助。

谢谢, PK

1 个答案:

答案 0 :(得分:2)

为此,请在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实例对数据库执行操作。

数据库和数据库中的表名/结构必须相同。避免使用供应商提供的本机功能来实现可移植性。