2012-03-20 147 views
0

我們有4個表,延遲初始化 - 休眠

一號A來一架B 一個B到許多C 一個C到許多d

所有配置雙向和懶惰取。

但是,如果我嘗試取A,它取B也不是C等等。這是一個一致的行爲。它是如何工作的?

回答

0

是的,這是一致的行爲。規範(JPA 2.0)是沒有太嚴格的有關使用FetchType.LAZY的預期的結果:

急切策略是所述持久性提供商 運行時,相關聯的實體必須是預先抓取的要求。 LAZY 策略是對持久性提供程序運行時的暗示。

以上是取自OneToOne的定義,但同樣適用於其他關係,LAZY是提示,而非規範。

此外,Hibernate已決定不實施OneToOne關係的延遲獲取。如果您需要它,請看看這個:Hibernate OneToOne lazy loading and cascading