我有一個Hibernate實體有幾個是比較胖,但不經常使用的嵌入對象。我想製作嵌入式對象Lazy Loaded,但我最好不要將信息移動到單獨的表中。休眠嵌入式對象可以延遲加載嗎?
是否有可能,以及如何註釋被延遲加載嵌入對象?
我有一個Hibernate實體有幾個是比較胖,但不經常使用的嵌入對象。我想製作嵌入式對象Lazy Loaded,但我最好不要將信息移動到單獨的表中。休眠嵌入式對象可以延遲加載嗎?
是否有可能,以及如何註釋被延遲加載嵌入對象?
直接假正經,通過在物體設置屬性是你可以
@Basic(fetch=FetchType.LAZY)
當我從你的問題了解你有一個大對象(或表),你沒有要填寫的所有屬性。 您可以使用HQL或條件查詢的投影特徵告訴here。
下面是一個例子,HQL應該是,
select new com.foo.Bean(b.prop1,b.prop2,...) from Bean b
你也需要在Bean
類添加對應的構造。
讓我補充一些事情:
lazy
在休眠時,它具有獲取來自多個表中的數據纔有意義。在這裏,您可以保存附加查詢以便從其他表中獲取數據。詳細瞭解lazy
設置here。它可能不適用於你的情況,因爲你只能從一個表中獲取數據。
我不覺得它是有多個對象來表示同一個表中的數據,僅僅是因爲在幾列的數據很少使用一個好主意。
從API:「避免不必要的列讀取以不同的方式,至少對於只讀的交易,是使用HQL或條件查詢的投影功能。這避免了構建時字節碼處理的需要,並肯定是優選的解決方案「。 – ManuPK
我認爲你還沒有使用遺留數據庫,你有50列i.i – osdamv