【问题标题】:JPA entities with different databases - annotations for main database, XML for secondary database具有不同数据库的 JPA 实体 - 主数据库的注释,辅助数据库的 XML
【发布时间】:2014-12-24 10:20:32
【问题描述】:

我有两个数据库 - 新的(重构的)和旧的(旧的)一个,我希望应用程序在两个数据库上运行(不是同时,目的是在旧数据库上运行应用程序一段时间,并且然后将一些客户端切换到新数据库,并在一段时间后放弃对旧数据库的支持)。显然 - 不同的配置,JPA 实体到数据库的映射是唯一的区别。

我知道这可以通过维护两个 JPA persistence.xml 配置文件来实现。但我想有以下设置: - 主数据库的配置应该在注解中(因为更容易开发和维护注解并且可以放在主代码中)。 - 旧数据库的配置应该在覆盖注释的 XML 文件中。

这是否可能以及如何实现。据我所知,相反的方法是可能的 - 在 persistence.xml 中保留映射并使用注释进行覆盖。

【问题讨论】:

    标签: java jpa annotations persistence ejb-3.1


    【解决方案1】:

    实际上,JPA 提供程序允许您使用注释定义映射并使用 XML 文件覆盖设置。这(几乎)是任何 java EE 规范的默认行为。

    在您的情况下,您可以使用新数据库的注释定义映射,然后通过仅声明 JNDI 位置和标志来定义一个 persistence.xml:

    false

    任何其他映射都将在注释级别处理。

    对于旧数据库,您可以声明另一个持久性单元,并使用persistence.xml 或orm.xml 覆盖注释中声明的行为。

    在您的代码中,您可以按名称引用相应的持久性单元。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多