企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
Spring Data JPA 内置了审计功能,用于跟踪实体的创建时间、更新时间、创建者、更新者等信息。 ```java @CreatedDate 被标记字段,当实体是新增时记录实体创建时间,如果是更新则不会做任何更改 @LastModifiedDate 被标记字段,当实体是更新时记录实体更新时间 @CreatedBy 被标记字段,当实体是新增时记录实体创建者,如果是更新则不会做任何更改 @LastModifiedBy 被标记字段,当实体是更新时记录实体更新者 ``` <br/> 审计功能使用步骤: **1. 实体类标记审计注解** ```java //@EntityListeners 表示当前实体类 Student 运用审计功能 @EntityListeners(AuditingEntityListener.class) public class Student { ... @CreatedDate @Column(name = "create_time") private Date createTime; @LastModifiedDate @Column(name = "update_time") private Date updateTime; @CreatedBy @Column(name = "create_user") private String createUser; @LastModifiedBy @Column(name = "update_user") private String updateUser; } ``` **2. 开启审计功能** ```java @Configuration @EnableJpaAuditing(auditorAwareRef = "auditorAware") public class JpaConfig { @Bean("auditorAware") public AuditorAware<String> auditorAware() { //这里返回登录用户 return () -> Optional.ofNullable("zhangsan"); } } ``` **3. 新增/更新** ```java Student student = studentRepository.findById(9).orElse(null); if (student == null) { student = new Student(); } student.setName("张三"); student.setAge(25); student.setGender(GenderEnum.男生); studentRepository.save(student); ``` ![](https://img.kancloud.cn/52/e7/52e7fb9843e0049a331e6f831adca65a_1778x212.png) 新增/更新时不需要程序员对实体类这 4 字段赋值,他们的赋值有 JPA 自动来完成。