【问题标题】:How to configure schema name for mapped entity / table in JPA / hibernate如何在 JPA/hibernate 中为映射实体/表配置模式名称
【发布时间】:2012-08-30 08:03:39
【问题描述】:

我有一个应用程序需要在运行时访问 2 个模式,并且部署时需要配置模式名称,因为每个部署的名称都不同(用于组装测试、集成测试、性能测试......)

我知道 JPA / hibernate 可以在 @Table 注释上指定架构,但我需要使架构可配置,是否有添加后处理器 / 事件侦听器,以便我可以修改休眠元信息,并更改表架构我的配置?

目前我正在考虑重写我自己的 HibernateJpaVendorAdapter / HibernatePersistence,但这绝对不是一个好主意。

谢谢。

【问题讨论】:

  • 您的应用程序的一个实例是否只访问一个架构,或者一个正在运行的实例是否同时访问两个不同的架构(例如liveAliveB)?
  • 一个实例需要在一个事务中访问两个模式。我不想使用 JTA,因为它太贵了,否则我可以使用 2 个实体管理器并将它们中的每一个映射到不同的默认架构。

标签: spring hibernate jpa


【解决方案1】:

您可能还想调查META-INF/orm.xml 文件中的persistence-unit-defaults 元素。这允许您为持久性单元指定默认模式和目录。这可能会也可能不会满足您的需求,具体取决于您如何确定要在代码中访问的架构。另请注意,Hibernate 多年来一直在该领域充满错误。不过,它可能比编写自定义代码更好。

【讨论】:

  • 如果我可以使用 JTA 并定义 2 个实体管理器,这应该可以。但是我的环境不允许这样做。谢谢。
猜你喜欢
  • 2019-01-25
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
  • 1970-01-01
  • 2011-01-21
  • 2011-01-14
相关资源
最近更新 更多