2010-09-01 104 views
3

我需要拦截后保存一个实体在休眠,但所有我发现是保存,这是处理实体保存之前,有一个postFlush方法返回一个巨大的惰性迭代器,我不能了解如何使用它,请建议我一个办法赶上实体休眠后保存或更新,hibernate拦截器后保存?

问候,

回答

5

postFlush是你想要的。迭代器将让您遍历所有插入或更新的实体。它在sql执行完数据库后被调用。

+0

,但它执行一个奇怪的行为,因为某些时候该数组中的对象没有用DB中的最新更改进行更新 – 2010-09-01 13:23:04

2

尝试javax.persistance.PostPersist注释:

@PostPersist 
private void postPersist() 
{ 
    // do stuff 
} 
+0

尽管OP没有说他使用了JPA。 – 2010-09-01 08:59:19

+0

这是正确的,我正在使用hibernate而不是实体管理器(JPA)实现 – 2010-09-01 09:47:33