【问题标题】:Is there a limit to a class path in a queryDsl query? [duplicate]queryDsl 查询中的类路径是否有限制? [复制]
【发布时间】:2019-03-28 14:14:13
【问题描述】:

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

例如,假设我有 5 个嵌套类(City -> Area -> House -> Room -> Bed) 我想根据某个区域的 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 很奇怪。我在文档中找不到任何关于它的信息。

【问题讨论】:

    标签: java hibernate querydsl


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2010-12-23
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多