休眠中的嵌套条件失败,出现Null Pointer异常

时间:2012-06-01 08:23:21

标签: java hibernate hql

我有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指针异常

2 个答案:

答案 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属性。