我們知道,當你更新休眠對象做了Session.update(OBJ),它將檢查,如果這一個變化,將決定更新或不更新日期propertie,事情是,我想在hibernate決定更新這個對象的情況下更新另一個名爲UPDATED_AT(BD)或屬性的列。當Hibernate決定更新對象
有沒有辦法做到這一點?
我們知道,當你更新休眠對象做了Session.update(OBJ),它將檢查,如果這一個變化,將決定更新或不更新日期propertie,事情是,我想在hibernate決定更新這個對象的情況下更新另一個名爲UPDATED_AT(BD)或屬性的列。當Hibernate決定更新對象
有沒有辦法做到這一點?
您可以使用這個interceptor。
攔截器是事件偵聽器Hibernate會調用某些事件當一個對象被加載或當它保存等。
onSave
在實際保存對象之前調用,並且您將獲得將被保存的所有屬性的列表,因此您可以在UPDATE
發送到數據庫之前修改它們。
這似乎是有益的,我會更新答案時我讓它工作,謝謝:) –
我有一個問題,我的攔截器不工作時,我使用session.getCurrentSession(),請注意,我已經加入這個攔截時,我的openSession –
請打開一個新的問題的代碼如何安裝攔截器(以及何時)以及如何在需要時使用它。 –
我們通過數據庫觸發器來做到這一點。我不確定在hibernate中是否有配置來執行此操作。儘管如果沒有辦法在hibernate中這樣做,我會感到有些驚訝。 – hooknc
查找有關攔截器的文檔。 – Marcelo
我知道它可以用一個觸發器完成,謝謝hooknc,但我正在尋找一種方法來做到這一點與休眠,所以生病看看攔截器... –