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