我一直在將一個項目從JPA移植到Hibernate本地實現中(被團隊取消:<)。Hibernate攔截器PostLoad
我必須處理的一件令人難以置信的事情是@PostLoad不支持Hibernate本地庫。所以我Google了一下。
首先我看着EventListeners - > Nope,配置類似乎不再讓你設置它。當我將它注入cfg文件時,聽衆仍然拒絕工作。
好的,接下來,我看着攔截器 - >沒有,沒有後負載。實例化也不會傳入對象本身。多麼方便。最後,我看着LifeCycle - >哇,是的,它有onLoad(),但是它傳入Session和Serializable Id但沒有對象。尼斯。
無論如何,我想要的是使用名爲onPostLoad(Object object,yadda yadda yadda)的處理函數來偵聽後加載的內容。有沒有人有一個很好的建議?
其實我意識到這一點,但我沒有意識到變量也被傳入了。雖然必須執行初始化我自己很煩,我想沒有別的辦法。我仍然無法相信Hibernate沒有一個簡單的處理器來處理如此簡陋的事情。 –
對於你的情況,讓你的實體實現生命週期似乎是一個更好的交易。由於它是實現接口的實體本身,因此無論如何(通過這個)你是否有實例?或者我錯過了你的問題? – Jeshurun
謝謝,這很像魔術。在那些笨重的eventlisteners和設計奇怪的intercepters之後,我感到非常驚訝的是,生命週期是一個非常優雅的解決方案(我認爲它的工作原理類似於Interceptors,它像一個處理程序類,而不是真的只是......在實體本身)。解決了我的問題! –