JPA监听器
背景
在JPA中,我们使用Java Persistence API进行数据的持久化(增删改查),相应的该API也提供了监听数据持久化生命周期中的回调方法,比如我们通过JPA的审计功能可以插入创建者(@CreatedBy)、修改者(@LastModifiedBy)、创建时间(@CreatedDate)、最后修改时间(@LastModifiedDate)。
但是这些注解支持有的时候并不够,比如通过@CreatedBy我们在创建者这一列插入的是用户ID,但是我们的数据库中还有一列是用来保存创建者的用户名称的,这个时候就需要使用JPA的监听器。
- @PrePersist 保存前
- @PostPersist 保存后
- @PreRemove 删除前
- @PostRemove 删除后
- @PreUpdate 更新前
- @PostUpdate 更新后
- @PostLoad 查询后
步骤
创建自定义监听器
1 | public class CustomerListener |
在实体类上添加@EntityListeners
注解,并指定自定义监听器
1 | .class}) ({CustomerListener |