java数据库基类的实现 (基于Spring Data JPA提供的审计功能)

java数据库基类的实现

  1. 目的:
    统一管理数据库共有字段,实现创建时间,创建人,修改时间,修改人的自动更新。
  2. 创建基础类:
@Data
@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
public class BaseModel {

    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    private String id;

    @CreatedDate
    private Date createTime;

    @CreatedBy
    private String createName;

    @LastModifiedDate
    private Date lastChangeTime;

    @LastModifiedBy
    private String updateName;
}

注解说明:

(1)@Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
(2)@EntityListeners(AuditingEntityListener.class):声明实体监听器:用于实体修改时做处理
(3)@MappedSuperclass:声明该类为实体父类·不会映射单独的表··而是把字段映射到子类表中
(4)@CreatedDate:表示该字段为创建时间时间字段,在这个实体被insert的时候,会自动为其赋值
(5)@CreatedBy:表示该字段为创建人,在这个实体被insert的时候,会自动为其赋值
(6)@LastModifiedDate、@LastModifiedBy同理。
  1. 创建子类
@Entity
@Table(name = "zzy_person")
@Data
public class Person extends BaseModel{

    private String name;

    private String qq;

    private Integer age;

    private String address;
}
  1. 实现AuditorAware接口
@Component
public class SpringSecurityAuditorAware implements AuditorAware<String> {

    @Value(value = "${user.name}")
    private String userName;

    @Override
    public String getCurrentAuditor() {
        return userName;
    }
}

说明:此处由于自己是学习,因此选择将人员信息放在配置文件里面,这里直接引入,实现测试,实际开发中,一般都是调用方法获取人员信息,此处的实现可以根据自身需求修改。

  1. 注意事项:
    需要在启动类上面注解:@EnableJpaAuditing
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值