簡體   English   中英

左聯接獲取可為空的孫子關聯會導致NPE處於休眠狀態

[英]left join fetch of nullable grandchild association causes NPE in hibernate

我有一個名為Foo的實體。 它與Bar有一個可為空的多對一關聯。 Bar與Baz具有不可空的多對一關聯。

我的目標是獲取所有Foo實體並熱切獲取其Bar關聯,對於foo.bar不為null的foo,則熱切獲取foo.bar.baz。

這可能嗎? 以下兩者都會導致休眠狀態在其查詢引擎內引發NullPointerException:

select f from Foo f left join fetch f.bar left join fetch f.bar.baz

select f from Foo f left join fetch f.bar.baz

現在,這有效:

select f from Foo left join fetch f.bar

但這並不急於為那些非空bar的f獲取f.bar.baz。

您需要在查詢中使用別名bar

select f from Foo f
  left join fetch f.bar b
  left join fetch b.baz

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM