记录操作历史记录方案 (1): Spring Data JPA 实现

本文探讨了在管理平台中如何使用JPA的EntityListener注解来记录数据版本及管理员操作,如费率调整和通道切换,确保每项变动都有迹可循。详细介绍了通过OrderRate实体和OrderRateListener监听器实现这一需求的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一些管理平台中,对一些数据的操作需要记录当前数据的版本,监管管理人员在平台的一些敏感操作。比如费率,通道等,谁调整了费率,切换了通道,每一次都要进行记录。

实现这种需要有很多方式

 

这边仅讨论JPA的实现,主要通过JPA的EntityListener注解实现:

情景: OrderRate 为Entity   OrderRateListener 为EntityListener  表名 为order_rate

@Table(name="order_rate")

@Entity

@EntityListeners(OrderRateListener .class)

public class OrderRate{

    private String updateBy;

    private  double rate;

    ...(get set)

}

 

public class OrderRate{

@Prepersist                     //完成save之前的操作。

public XXX(){}
@Preupdate                    //完成update之前的操作。

public XXX(){}
@PreRemove                 //完成remove之前的操作。

public XXX(){}
@Postpersist                  //完成save之后的操作。

public XXX(){}
@Postupdate                 //完成update之后的操作。

public XXX(){}
@PostRemovet             //完成remove之后的操作。

}

本文没有对注解实现进行讨论,后面会补在拓展

注意问题:

1.在Listener中无法直接使用注入注解获取Spring容器中对象,需要写静态方法来获取

2.Listener可能有很多重复代码,注意优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值