JPA更有效的回调方法注解

doMore 568 2019-12-02
  1. @PrePersist
    在实体管理器持久化操作实际执行或者级联操作之前执行。这个调用与持久化操作是同步的。
  2. @PreRemove
    实体管理器删除操作实际执行或者是级联操作之前执行。与删除操作时同步操作
  3. @PostPersist
    实体管理器实际执行持久化操作或者级联操作之后执行,在数据库执行 insert 之后执行该方法调用。
  4. @PostRemove
    实体管理器删除操作实际执行或者级联操作之后。这个与删除操作时同步执行。
  5. @PreUpdate
    数据库 update 操作之前
  6. @PostUpdate
    数据库 update 操作之后
  7. @PostLoad
    在实体被加载到当前持久化上下文或者刷新实体之后执行。

有两种可用的方法定义指定回调处理
一、直接对实体本身的方法进行注释,以接收特定实体生命周期事件的通知
二、使用单独的实体侦听器类,实体监听器类是无参数构造函数的无状态类。回调注释放在这个类的方法上,不是直接注释在实体类上。然后使用java.persistence.EntityListeners将实体与实体监听器关联。