我是ORM和JPA的新手。我在Ingres有一张名为Table1的表。我需要将Table1从Ingres复制到Oracle。我成功连接到两个数据库。是否可以只创建一个名为Table1的Entity类,然后按如下方式执行此操作: 从Ingres获取列表,其中包含Table1中的所有记录。 持久列表(完全,如果不是由收集元素单独)到Oracle。
感谢您的建议和帮助。
谢谢, PK
答案 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实例对数据库执行操作。
数据库和数据库中的表名/结构必须相同。避免使用供应商提供的本机功能来实现可移植性。