如何在运行时配置JPA(特定的表模式)

时间:2013-09-20 17:23:57

标签: java xml hibernate jpa

我正在使用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"/>

在配置时将@placeholder替换为mySchema

  1. 无论如何要这样做?
  2. JPA中的哪个部分(类)扫描XML映射文件,我可以自定义该类来替换我吗?

1 个答案:

答案 0 :(得分:1)

我认为您可以使用bootstrap procedure在运行时访问EntityManagerFactoryEntityManager来覆盖属性。