2015-10-05 21 views
0

我不知道如何在這裏描述我的問題...如何以編程方式確定應該加載一個懶惰的集合?

我有一個由hibernate控制的JPA註釋實體。我使用querydsl動力回收來控制一些加載。

我們在某些情況下想要獲取某些特定領域的實體,但在其他情況下並不存在。基本上,我們其餘數據的請求者可以使用$ expand參數來決定擴展具有額外集合的原始數據。

我的問題是,一個簡單的懶惰加載程序似乎不足以防止如果用戶沒有要求它們擴展的實體的這些可擴展字段的加載。我們的一些邏輯會自動遍歷我們所有的getter並處理它們,因此它總是強制加載延遲加載的字段。

我想知道是否有一種方法,以編程方式打開'開'或'關'字段,我不想從後端延遲加載,而不分離整個實體?

+0

這是一個EntityGraph的用途,試過這些? –

回答

0

也許這個建議不適合正是你所期望的,但你可以設置這個選項(使用Hibernate):

@ org.hibernate.annotations.LazyCollectionOption.EXTRA

使用此選項,一切都將被設置爲避免加載集合。它提供對集合大小的訪問,而不會加載集合中的項目。