使用多个数据库架构的JPA
我在使用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文件。
<persistencexmlns="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");
以上是 使用多个数据库架构的JPA 的全部内容, 来源链接: utcz.com/qa/416079.html