0

Spring是否有任何鉤子在事務性上下文的出口處爲每個實體的實體或實體偵聽器調用方法?實體退出@Transactional上下文時的回調函數?

我們使用Spring和Hibernate來管理一系列我們也爲搜索而編制索引的實體。我們目前使用Hibernate的@PreUpdate方法的實體監聽器在創建或修改實體時執行reindex。當然,只有在更新了一個或多個實體自己的屬性(即其數據庫行中的值)時纔會觸發此事件。

當一個實體對非平凡的子屬性有一個@OneToMany映射時,就會出現這個問題。當其中一個子屬性更新時,PreUpdate回調是而非在父實體上調用。

我們已經跟蹤時,性能更新,但我們要等到所有的更新都 完成觸發之前重新索引。什麼是最好的地方來進行這樣的重新索引呼叫?更新前的適用於大多數情況,但這種皺紋使我不知道是否有當實體離開@Transactional範圍的鉤子。另外,是否有一個休眠的方式來觸發一個OneToMany孩子持久時父母的回調?

回答

1

我認爲方面是救援。有春天文檔中提供諮詢事務操作Advising transactional operations看看節10.5.8這將幫助你寫身邊@Transactional方法方面,然後你做索引。