繁体   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