queryDsl查询中的类路径是否有限制?

时间:2019-03-28 14:14:14

标签: java hibernate querydsl

我正在使用QueryDSL在我的Java应用程序上构建谓词,并且似乎使用太大的类路径会创建NullPointerException。 你们有没有人遇到过这个问题,或者这是正常行为吗?

例如,假设我有5个嵌套类(城市-> 区域-> 房屋-> 房间-> ),我想根据该区域的ID查询床是否属于某个区域。 因此,我将使用:

构建一个BooleanExpression。
public static BooleanExpression areaIdEquals(Long areaId) {
  QBed bed = QBed.bed;
  return bed.room.house.area.id.eq(areaId)
}

这会引发NullPointerException,因为显然,area始终为null。

我只是想知道这种查询的类路径大小是否受限制是常识,因为我发现路径的第4个元素始终为null很奇怪。我在文档中找不到任何内容。

1 个答案:

答案 0 :(得分:0)

我找到了解释它的section of the documentation

  

默认情况下,Querydsl仅初始化前两个级别的引用属性。如果需要更长的初始化路径,则必须通过com.querydsl.core.annotations.QueryInit注释在域类型中进行注释。 QueryInit用于需要深度初始化的属性。

我使用QueryInit测试了该解决方案,并且有效。