2015-01-26 90 views
5

我已經實現了Hibernate事件的事件前/事件偵聽器,但我還沒有能夠克服一個警告。我有一個Departments實體,它與一個Centers實體有多對多的關係。當分配一個新的中心一處,我簡單地調用:當關系發生變化時觸發休眠(事前/事後)更新事件

oDepartment.addCenter(oCenter); 
entitySave(oDepartment); 

發生這種情況時,我希望Hibernate來,因爲我修改了實體觸發更新前和postUpdate事件。但是,除非列屬性也更新,否則它不會被觸發。只更新關係屬性似乎不會觸發更新事件。

翻閱當前的Hibernate會話,我似乎無法找到任何可以讓我設置某種標誌來觸發這些事件觸發的東西。

想法,我可以讓這些事件發生?

回答

3

當集合發生更改時,Hibernate不會觸發pre/postUpdate事件。 相反,它會觸發

  • preCollectionUpdate/preCollectionRemove/preCollectionRecreate
  • postCollectionUpdate/postCollectionRemove/postCollectionRecreate。

這是一個已知和老的錯誤,你可以檢查HHH-2616here

您可以實現這些偵聽器,或者作爲解決方法,您可以強制postUpdate被調用以更改該實體上的另一個字段。

相關問題