我有3个实体
A,B和C
A与B之间的一对一关系 B和C之间的多对一关系
当我访问实体'A'时,我能够向下钻取并获得C
的值但是当我的HQL中有嵌套条件时,我得到空指针异常
查询看起来像
from(A) where A.B.C.some_parameter.eq(value)
我添加了
<property name="hibernate.max_fetch_depth" value="4" />
在我的配置中,但我仍然一直得到Null指针异常
答案 0 :(得分:0)
甚至没有远程有效的HQL:)
1)你没有在括号中包装实体引用;它只是from A
2)您希望进一步取消引用A引用,因此通常您会将其替换为from A a
3)假设.eq是尝试执行相等比较,其where a.b.c.someProperty = value
4)fetch_depth绝对没有影响力。
答案 1 :(得分:0)
查询应为..
"from A a where a.B.C.some_parameter = value"
检查引用,Hibernate Lazy 在A,B和C之间必须是假的。您定义的属性我认为不依赖于您的愿望。此外,对于您执行查询的实体,必须具有从A到C的完整桥接以及您在where子句中使用的C属性。