【发布时间】:2013-11-19 11:18:01
【问题描述】:
我正在 java web 项目中使用 hiberante-entity 管理器实现 jpa 持久性。 我在 persistence.xml 中设置了以下属性。
<property name="hibernate.hbm2ddl.auto" value="update"/>
我为每个用户都有一个架构。例如,我有一个用户 1 的模式和一个用户 2 的模式。 如果表 'ABC' 存在于 user1 架构中但不在 user2 架构中,并且我部署了应用程序并且它使用 user2 db 凭据,我会收到消息 'user1.ABC' table found 所以在 user2 中没有创建 'ABC' 表架构。
当我尝试在 persistence.xml 文件中使用以下属性时,表是在 user2 架构中创建的。
<property name="hibernate.hbm2ddl.auto" value="create"/>
我的问题是 如果应用程序正在使用 user2 db 凭据,为什么 hibernate 在另一个模式中搜索,即 user1?和 我不想在每次服务器启动时都创建架构,所以我怎样才能避免使用 价值“创造”。
编辑:下面是我的 persistence.xml 文件
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="XXXXXX" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>org.axonframework.saga.repository.jpa.SagaEntry</class>
<class>org.axonframework.saga.repository.jpa.AssociationValueEntry</class>
<properties>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
提前致谢
【问题讨论】:
-
你能发布你的完整 persistence.xml 吗?
-
您也可以发布
org.axonframework.saga.repository.jpa.SagaEntry。可能您正在那里定义架构,因此无论获取哪个数据库凭据,它都是默认的