gpt4 book ai didi

java - 使用多个数据库模式的 JPA

转载 作者:IT老高 更新时间:2023-10-28 13:47:15 25 4
gpt4 key购买 nike

我在使用 JPA/Spring 时遇到了一个特定问题:

如何将架构动态分配给实体?

我们有属于架构 AD 的 TABLE1 和属于 BD 的 TABLE2。

@Entity
@Table(name = "TABLE1", schema="S1D")
...

@Entity
@Table(name = "TABLE2", schema="S2D")
...

模式可能不会硬编码在注释属性中,因为它取决于环境 (Dev/Acc/Prd)。 (接受的模式是 S1A 和 S2A)

我怎样才能做到这一点?是否可以像这样指定某种占位符:

@Entity
@Table(name = "TABLE1", schema="${schema1}")
...

@Entity
@Table(name = "TABLE2", schema="${schema2}")
...

以便基于驻留在环境中的属性文件替换架构?

干杯

最佳答案

我遇到了同样的问题,我用persistence.xml解决了这个问题,我在其中引用了我声明的db shema中所需的orm.xml文件

<persistence
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0" >
<persistence-unit name="schemaOne">
. . .
<mapping-file>ormOne.xml</mapping-file>
. . .
</persistence-unit>

<persistence-unit name="schemaTwo">
. . .
<mapping-file>ormTwo.xml</mapping-file>
. . .
</persistence-unit>
</persistence>

现在您可以为您的特殊架构创建一个 EntityManagerFactory

EntityManagerFactory emf = Persistence.createEntityManagerFactory("schemaOne");

关于java - 使用多个数据库模式的 JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1301399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com