← Back to list

spring data jpa (2) 审计

Published on: | Views: 86

这个功能其实很实用, 经常我们在插入记录的时候,会有create_time和update_time来记录创建与修改时间,有时候还要记录是谁创建/修改的, 经常这些信息要自己手工填写, 而现在jpa提供了自动化功能,加速开发。

建表时设置审计字段

    create_time  datetime default current_timestamp,
    update_time  datetime default current_timestamp on update current_timestamp,
    modify_user varchar(128)

增加依赖

compile('org.springframework:spring-aspects')

配置

@EnableJpaAuditing
public class JpaConfiguration {
    @Bean
    public AuditorAware<String> auditorProvider() {
        return () -> Optional.of("operate_user_id");
    }
}

@EnableJpaAuditing 用于开启审计功能 auditorProvider 用于提供当前用户信息

实体上增加注解

@Entity
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@EntityListeners(AuditingEntityListener.class)
public class TestEntity extends BaseEntity {
   // .....


    @CreatedDate
    private Date createTime;

    @LastModifiedDate
    private Date updateTime;

    @CreatedBy
    private String createUser;
}

在保存实体的时候,就不再需要设置这几个字段了,是不是非常方便呢。