2013-10-01 20 views
0

我们知道,当你更新休眠对象做了Session.update(OBJ),它将检查,如果这一个变化,将决定更新或不更新日期propertie,事情是,我想在hibernate决定更新这个对象的情况下更新另一个名为UPDATED_AT(BD)或属性的列。当Hibernate决定更新对象

有没有办法做到这一点?

+0

我们通过数据库触发器来做到这一点。我不确定在hibernate中是否有配置来执行此操作。尽管如果没有办法在hibernate中这样做,我会感到有些惊讶。 – hooknc

+0

查找有关拦截器的文档。 – Marcelo

+0

我知道它可以用一个触发器完成,谢谢hooknc,但我正在寻找一种方法来做到这一点与休眠,所以生病看看拦截器... –

回答

1

您可以使用这个interceptor

拦截器是事件侦听器Hibernate会调用某些事件当一个对象被加载或当它保存等。

onSave在实际保存对象之前调用,并且您将获得将被保存的所有属性的列表,因此您可以在UPDATE发送到数据库之前修改它们。

+0

这似乎是有益的,我会更新答案时我让它工作,谢谢:) –

+0

我有一个问题,我的拦截器不工作时,我使用session.getCurrentSession(),请注意,我已经加入这个拦截时,我的openSession –

+1

请打开一个新的问题的代码如何安装拦截器(以及何时)以及如何在需要时使用它。 –

相关问题