ENV:JBoss Seam的,JPA,休眠是否有可能動態觸發僅在需要
我們使用@PostLoad註釋動態初始化一些瞬態變量在我們@Entity(有時這涉及到查找父實體初始化狀態 - 這是一個代價高昂的操作)。
但是在某些情況下,我們不希望這個@PostLoad被觸發,因爲我們不會依賴瞬態變量。
有沒有辦法在加載後動態地控制數據。
解決此問題的一種方法是僅根據需要調用此方法(即通過刪除@PostLoad批註並手動調用此方法),但這也很容易出錯。
有沒有其他方法可以解決這個問題。
ENV:JBoss Seam的,JPA,休眠是否有可能動態觸發僅在需要
我們使用@PostLoad註釋動態初始化一些瞬態變量在我們@Entity(有時這涉及到查找父實體初始化狀態 - 這是一個代價高昂的操作)。
但是在某些情況下,我們不希望這個@PostLoad被觸發,因爲我們不會依賴瞬態變量。
有沒有辦法在加載後動態地控制數據。
解決此問題的一種方法是僅根據需要調用此方法(即通過刪除@PostLoad批註並手動調用此方法),但這也很容易出錯。
有沒有其他方法可以解決這個問題。
但是在某些情況下,我們不希望這個@PostLoad被觸發,因爲我們不會依賴瞬態變量。
創建兩個實體,一個使用@PostLoad
和瞬態字段,另一個使用「更輕」沒有。
我想你必須告訴我們你期望Hibernate知道何時觸發postLoad,何時不觸發?根據實體的數據?如果你想要的是在讀取數據之前做一些事情,例如:session.pleaseTriggerPostLoad(Foo.class),那麼和按需顯式調用方法沒什麼區別。 – 2010-07-19 11:39:09
能夠將這樣的標誌發送給JPA查詢會很有幫助,因爲這些類型的狀態更新程序在大型集合上運行時以及在急切獲取情況下都很昂貴。我從Salesforce數據中收集了一系列帳戶也遇到類似問題。要嘗試自定義查詢以獲取ID列表來構建,然後使用重載構造函數加載對象,請設置禁止更新的noExpiry標誌。 – Brian 2012-05-24 03:38:34