如何将JPA映射类中的操作保存到数据库中时触发操作?

时间:2009-07-27 14:03:04

标签: jpa

我希望在我的一个JPA注释类中有一个函数,每次EntityManager将它们保存到数据库(也就是事件监听器)时都会调用它。那可能吗?最好是,我想区分它是即将被保存还是刚被保存。

为了实现我想要的目标,这次我可以使用setter方法解决这个问题,但它不会完全相同。

2 个答案:

答案 0 :(得分:7)

当然,请查看these examples。你有:

  • @PrePersist;
  • @PreUpdate;
  • @PreRemove
  • @PostPersist;
  • @PostUpdate;和
  • @PostRemove

(由Hanno添加) - 对于初学者使用此答案,我还找到了this other nice example tutorial

答案 1 :(得分:1)

现在这可能是无关紧要的,因为这个帖子已经有几年了,但我认为Hanno所指的教程是在另一个(工作)链接上:

http://www.cereslogic.com/pages/2008/03/31/pizza-shop-iii-jpa-event-listeners/

此处还有另一个有用的教程:

http://www.andygibson.net/blog/article/auditing-entities-with-jpa-events/

我认为我会为将来可能会找到这个主题的人们做出贡献。

Saludos desde Bolivia