一、方法的标注: @PrePersist @PostPersist @PreRemove @PostRemove @PreUpdate @PostUpdate @PostLoad 。它们标注在某个方法之前,没有任何参数。这些标注下的方法在实体的状态改变前后时进 行调用,相当于拦截器,参考图 13.6 实体状态转换关系图,pre 表示在状态切换前触发, post 则表示在切换后触发。 @PostLoad 事件在下列情况触发: 1. 执行 EntityManager.find( )或 getreference( )方法载入一个实体后; 2. 执行 JPA QL 查询过后; 3. EntityManager.refresh( )方法被调用后。 @PrePersist 和 @PostPersist 事 件 在 实 体 对 象 插 入 到 数 据 库 的 过 程 中 发 生 , @PrePersist 事件在调用 EntityManager.persist( )方法后立刻发生, 级联保存也会发生此事 件,此时的数据还没有真实插入进数据库。@PostPersist 事件在数据已经插入进数据库后 发生。 @PreUpdate 和 @PostUpdate 事件的触发由更新实体引起, @PreUpdate 事件在实 体的状态同步到数据库之前触发,此时的数据还没有真实更新到数据库。@PostUpdate 事件在实体的状态同步到数据库后触发,同步在事务提交时发生。 @PreRemove 和 @PostRemove 事件的触发由删除实体引起,@ PreRemove 事件在实体从数据库删除之前触发,即调用了 EntityManager.remove()方法或者级联删除
jpa注解的一些用法
最新推荐文章于 2024-06-15 22:39:10 发布