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

发布于 2024-10-10 07:11:30 字数 242 浏览 7 评论 0原文

我是 ORM 和 JPA 的新手。我有一个名为 Table1 的 Ingres 表格。我需要将 Table1 从 Ingres 复制到 Oracle。我已经成功连接到两个数据库。是否可以只创建一个名为 Table1 的实体类,然后按如下方式执行此操作: 从 Ingres 获取 List,其中包含 Table1 中的所有记录。 将列表(如果不是整个列表,则按集合元素单独保存)保存到 Oracle。

我将感谢您的建议和帮助。

谢谢, PK

I am newbie to ORM and JPA. I have a table called Table1 in Ingres. I need to copy Table1 from Ingres to Oracle. I have been successful in connecting to both databases. Is it possible to create only one Entity class called Table1 and then do this operation as follows:
Get List from Ingres which has all the records from Table1.
Persist List (wholly, if not then individually by collection element) to Oracle.

I would appreciate your suggestions and help.

Thanks,
PK

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

往日情怀 2024-10-17 07:11:30

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

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

For this purpose, configure two persistence units pointing to different databases in persistence.xml file.

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

Persistence context is injected using annotation by the container for the given persistence-unit.

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

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

Then you can perform operation on databases by using respective entityManager instance.

Table name/structure must be same in both the databases & avoid using native functionality provided by vendors for portability.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文