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

标签 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"/>

在配置时用 mySchema 替换 @placeholder

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

最佳答案

我想你可以使用 bootstrap procedure在运行时访问 EntityManagerFactoryEntityManager 以覆盖属性。

关于java - 如何在运行时配置 JPA(表的特殊模式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18922481/

相关文章:

java - draw2d 导入未解决

不使用线程的 Java 套接字服务器

java - Java 应用程序的前端 - 不是 Swing,而是 JQuery 或 Jerry?

xml - 如何将xml文件转换为R中的数据框

xml - IDML 中故事 XML 的逻辑顺序

java - Spring /hibernate : how to get Configuration from LocalContainerEntityManagerFactoryBean

java - 如何解析 new Date().toString() 的输出

java - TelephonyManager.EXTRA_INCOMING_NUMBER 在 android 9 中为 null

在flush()之后Hibernate不更新数据库

java - 如何在BaseDao中获取EntityManager(Maven+JSF+hibernate)