[英]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.