我正在使用 JPA,我使用实体 XML 映射文件来配置我的持久层,另一方面我在 Oracle 数据库中有多个数据库模式
在持久性配置中,我只想拥有一个 EntityManagerFactory,实际上我只想与一个模式 (USER) 的数据库建立连接。
静态地,我可以像这样在映射文件中为我的实体一个一个地指定架构名称:
<entity class="package.MyClass" name="MyClass">
<table name="MYTABLE" schema="mySchema"/>
我在这个项目中的持久化提供者是:org.hibernate.ejb.HibernatePersistence
我想使用占位符来指定架构,并在 JPA 扫描映射文件以配置自身时替换它。
<entity class="package.MyClass" name="MyClass">
<table name="MYTABLE" schema="@placeholder"/>
在配置时用 mySchema 替换 @placeholder
- 无论如何都要这样做吗?
- JPA 中的哪个部分(类)扫描 XML 映射文件,我可以自定义该类来为我执行此替换吗?
最佳答案
我想你可以使用 bootstrap procedure在运行时访问 EntityManagerFactory
和 EntityManager
以覆盖属性。
关于java - 如何在运行时配置 JPA(表的特殊模式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18922481/