2012-08-07 75 views
2

我有以下實體:Hibernate ORM:如何避免獲取@OneToOne映射的對象?

員工[@Id龍ID,字符串名稱,地址@OneToOne branchAddress,@OneToOne地址是homeAddress]

地址[@Id龍ID,街道的字符串,字符串市,字符串郵編,國家國家]

國家[@Id龍ID,字符串名稱,字符串貨幣,字符串isoCode]

我的問題是,當我嘗試加載的員工,大部分的時間,我不想地址。提取地址提取地址和後續國家。這些是每次加載員工時執行的額外查詢。

我試圖使@OneToOne(FetchType.LAZY),但不起作用,它仍然拉動不必要的信息。

我該如何避免抓取複合對象?

我想最終的結果不包含地址對象,因爲它需要在20場景中一次,我可以分別獲取它們。

任何想法,如何實現這一點。

感謝

回答

1

如果我們oneToOne值不是空的,你可以通過添加optional=false實現延遲加載: @OneToOne(可選=假,取= FetchType.LAZY)。

這是完美的explained here

希望它有幫助。