【发布时间】:2014-12-23 16:12:17
【问题描述】:
我有一个 maven 项目,我在其中使用了 Spring Data 和 JPA(hibernate)。它由 XML 配置。 envers 的默认架构已更改。但它不起作用。当我看到 DDL 输出时,它说:
错误 org.hibernate.tool.hbm2ddl.SchemaUpdate - HHH000388: 不成功:更改表 VETERANS_AUD.USERPROFILE_ROLE_AUD 添加 约束 FK_nbpfx0rjc9hqiaiv4vofp82kc 外键 (REV) 引用 VETERANS_AUD.AuditedRevisionEntity 12:54:37.322 [localhost-startStop-1] 错误 org.hibernate.tool.hbm2ddl.SchemaUpdate - ORA-00942: 表或视图不存在
问题是:表没有在定义的模式中创建,但是约束想要在定义的模式中创建。 我使用了@AuditTable,但问题存在。试听表未在定义的架构中创建。
我的 pom 的一部分是:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.4.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-envers</artifactId>
<version>0.2.0.RELEASE</version>
</dependency>
<dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.6.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>4.3.6.Final</version>
</dependency>
<dependency>
这是我的配置:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" p:persistenceXmlLocation="classpath:META-INF/persistence.xml" p:dataSource-ref="dataSource">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" p:databasePlatform="${hibernate.dialect}" p:showSql="${hibernate.show_sql}" p:generateDdl="${hibernate.generate_ddl}" />
</property>
<property name="jpaProperties">
<props>
<prop key="org.hibernate.envers.default_schema">${hibernate.envers_schema}</prop>
<prop key="spring.jpa.properties.org.hibernate.envers.default_schema">${hibernate.envers_schema}</prop>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<prop key="hibernate.default_schema">${hibernate.default_schema}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
<prop key="org.hibernate.envers.revision_on_collection_change">false</prop>
<prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.DefaultComponentSafeNamingStrategy</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>com.dpj.veterans.model.domain</value>
<value>com.juice.applejuice.audition</value>
</list>
</property>
</bean>
我该如何解决这个问题?
【问题讨论】:
标签: hibernate spring-data hibernate-envers