Abh*_*kar 5 mysql database jpa cross-database jpa-2.0
是否可以在 JPA 中进行跨数据库表连接?
我users
在一个数据库中有一个表,它有organizations
一个单独数据库中表的外键。两个数据库都在同一台物理机器上。现在 MySQL 允许我编写跨越多个数据库的查询,但我不确定如何使用 JPA 来做到这一点。
在@Entity
对Java POJO的注解,也没有办法,以纪念跨DB关系不采取数据库的名称。
这种情况有解决方法吗?也许使用本机查询来加载加入的实体?
如果 MySQL 允许您编写跨数据库查询的 SQL,那么您可以在 JPA 的本机查询中使用此 SQL。
我假设您正在使用某种数据库链接机制?如果是这样,那么您也应该能够映射它。您可以将链接数据库的@Table 上的“模式”设置为链接名称。
IE
@Table(name="organizations", schema="org_schema@org_db")
Run Code Online (Sandbox Code Playgroud)
你不能。因为每个实体都绑定到一个持久化上下文,而该上下文绑定到一个数据库。
如果数据库是指同一服务器上的模式,则可以做两件事
如果两个模式都在不同的数据库上,那么您必须在代码中手动进行连接。
一个问题问你。您提到的“外键”是真正的数据库外键还是逻辑 FK ?
我们尝试了以下方法,似乎有效。
1)@Table注解中没有schema属性
2)为实体创建不同的orm文件,这些实体由它们所在的模式组成。
3)在每个orm文件中,您可以添加一个“my_schema”。
4) 在 persistence.xml 中包含各自 PU 中的 orm 文件
5) 如果您希望在测试期间使用不同的数据库,请创建类似的 orm 文件进行测试并相应地更改模式中的值,并将这些 orm 文件包含在单独的 PU 中
华泰
归档时间: |
|
查看次数: |
7795 次 |
最近记录: |