2010-09-01 111 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