You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3迁移:Hibernate Envers@Audited注解能否继续使用?

Spring Boot 3中使用Hibernate Envers的@Audited注解

当然可以在Spring Boot 3中继续使用@Audited注解,以下是关键说明和配置步骤:

核心原理

@Audited是Hibernate Envers原生提供的注解,并非Spring Data Envers的产物。Spring Data Envers项目合并到Spring Data JPA,只是将原有的审计Repository支持(比如RevisionRepository)整合进了Spring Data JPA模块,而Hibernate Envers的核心注解和审计功能完全保留,不受影响。

配置步骤

1. 添加Hibernate Envers依赖

当前你的pom.xml中仅包含spring-boot-starter-data-jpa,该依赖默认包含Hibernate Core,但Hibernate Envers是独立模块,需要显式添加:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!-- 添加Hibernate Envers依赖 -->
    <dependency>
        <groupId>org.hibernate.orm</groupId>
        <artifactId>hibernate-envers</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

注意:Spring Boot 3适配Hibernate 6+,Envers的groupId已从org.hibernate改为org.hibernate.orm。

2. 继续使用@Audited注解

直接在需要审计的实体类或字段上标注org.hibernate.envers.Audited即可,和之前的用法完全一致:

@Entity
@Audited
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String username;
    
    // 字段级审计示例
    @Audited
    private String email;
    
    // getter、setter...
}

3. 审计历史查询(整合后的Repository支持)

原Spring Data Envers提供的RevisionRepository已整合到Spring Data JPA中,只需让你的Repository接口继承它即可实现审计历史查询:

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.history.RevisionRepository;

public interface UserRepository extends JpaRepository<User, Long>, RevisionRepository<User, Long, Integer> {
}

之后就可以调用findRevisions(Long id)等方法查询实体的所有修订版本。

4. 可选:显式启用Envers

默认情况下,添加Envers依赖后会自动启用审计功能,若需确保配置生效,可在application.properties或application.yml中添加:

spring.jpa.properties.hibernate.envers.enabled=true

内容的提问来源于stack exchange,提问作者Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:32:28