当前位置: 首页 > 知识库问答 >
问题:

hibernate envers默认模式不起作用

黎浩然
2023-03-14

我有一个maven项目,我在其中使用了spring数据和JPA(hibernate)。并通过XML进行配置。envers的默认架构已更改。但它不起作用。当我看到DDL输出时,它说:

错误组织。冬眠工具hbm2ddl。方案更新-HH000388:不成功:更改表格退伍军人。USERPROFILE_ROLE_AUD add constraint FK_nbpfx0RJC9HQIIV4VOFP82KC外键(REV)引用退伍军人_AUD。AuditedRevisionEntity 12:54:37.322[localhost-startStop-1]错误组织。冬眠工具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>

如何解决这个问题?

共有1个答案

王景山
2023-03-14

如果您有一个自定义的修订信息表,则必须将模式指定为@table注释的一部分,即。

@Table(name = "rev", schema = "schema")
 类似资料:
  • 注意 当前章节中涉及的配置一般适用于关系数据库。这里展示的扩展方法在你安装了关系数据库提供程序之后就能获得(由Microsoft.EntityFrmeworkCore.Relational 程序包共享)。 默认模式是在未显示配置对象的数据库模式时其将被创建到的数据库模式。 惯例 按照惯例,数据库提供程序将会选择最合适的默认模式。比如,Microsoft SQL Server 会使用 dbo 模式,

  • 我想通过在eureka(应用程序名称)注册的服务ID在我的Spring云网关(无zuul)启用默认路由,但我总是得到404错误。 在我的聊天服务的引导程序中。yml我已经定义了应用程序名 在应用程序属性中: 当我进入eureka的仪表板时,我可以看到我的聊天服务和网关。 Eureka在网关应用程序中的配置与聊天服务相同,但我也有以下配置: 接下来,我还尝试添加显式路由,但这并不起作用,但如果我有发

  • 安装舵机图 在同一命名空间部署入口 将服务的入口类型从LoadBalancer更改为NodePort,因为它不是以其他方式创建的。

  • 年龄限制默认值不是由选择的,但是它与请求参数配合得很好。 YML文件 下面是带有请求参数Request的旧代码 下面是ModelAttribute请求的新代码

  • 我遵循默认的Mod Base教程,偶然发现了一个问题。当我尝试以默认方式开始新的跑步时,游戏崩溃: 正因为如此,我使用了BaseMod的调试控制台,看看我是否可以手动添加卡片、遗物、药水等。 DefaultMod中起作用的东西: 所有4件文物 此外,这些消息在通过IntelliJ调试ModTheSpire时出现。 此选项在ModSpire mod选择窗口中: 这一次是在修补过程中(我想是吧?),这

  • 问题内容: 使用JPA,我们可以手动或锁定来处理事务中的实体更改。 我想知道如果不指定这两种模式之一,JPA如何处理锁定?没有使用锁定模式? 如果不定义显式锁定模式,是否会丢失数据库完整性? 谢谢 问题答案: 我已经浏览了Java Persistence API 2.0 Final Release 规范的3.4.4 锁定模式 部分,虽然找不到任何 特定的 东西(它没有声明 这 是默认值或类似的东西