queryDsl查询中的类路径是否有限制? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在使用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个元素始终为空是奇怪的。我在文档中找不到任何相关内容。

java hibernate querydsl
1个回答
0
投票

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

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

我使用QueryInit测试了解决方案并且它可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.