Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何在JPA/hibernate中为映射的实体/表配置架构名称_Spring_Hibernate_Jpa - Fatal编程技术网

Spring 如何在JPA/hibernate中为映射的实体/表配置架构名称

Spring 如何在JPA/hibernate中为映射的实体/表配置架构名称,spring,hibernate,jpa,Spring,Hibernate,Jpa,我有一个应用程序需要在运行时访问2个模式,并且在部署时需要配置模式名称,因为每个部署的名称都不同(用于组装测试、集成测试、性能测试…) 我知道JPA/hibernate可以在@Table annotation上指定模式,但我需要使模式可配置,是否需要添加后处理器/事件侦听器,以便我可以修改hibernate元信息,并使用我的配置更改表模式 目前我正在考虑重写我自己的HibernateJavaEndorapter/HibernatePersistence,但这肯定不是一个好主意 谢谢。您可能还想调

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

我知道JPA/hibernate可以在@Table annotation上指定模式,但我需要使模式可配置,是否需要添加后处理器/事件侦听器,以便我可以修改hibernate元信息,并使用我的配置更改表模式

目前我正在考虑重写我自己的HibernateJavaEndorapter/HibernatePersistence,但这肯定不是一个好主意


谢谢。

您可能还想调查
META-INF/orm.xml
文件中的
持久化单元默认值
元素。这允许您为持久化单元指定默认模式和目录。这可能满足您的需求,也可能不满足您的需求,这取决于您如何确定要在代码中访问的模式。还要注意的是,Hibernate多年来一直被这个领域的bug所困扰。不过,这可能比编写自定义代码要好。

应用程序的一个实例是否只访问一个架构,或者一个正在运行的实例是否同时访问两个不同的架构(例如
liveA
liveB
)?一个实例需要在一个事务中访问两个架构。我不想使用JTA,因为它太贵了,否则我可以使用2个实体管理器,并将它们分别映射到不同的默认模式。如果我可以使用JTA并定义2个实体管理器,这应该是可行的。但我的环境不允许这样。谢谢