@QueryInit初始化路径未初始化完整路径

时间:2019-07-11 17:48:56

标签: querydsl

我正在尝试使用QueryDSL Q对象设置BooleanExpression,但是在定义谓词时出现空指针异常。我知道在问题字段上使用QueryInit标记可以解决此问题。但是,当我尝试时它没有用。我检查了另一篇堆栈溢出文章,其中说QueryInit的最大初始化路径深度为4,但是我无法在文档中找到它,而是让它在路径长度为5的其他字段中工作。初始化路径深度?如果是这样,有办法解决吗?

我尝试将初始化路径设置为“ ”,但是它仅将对象初始化了几个级别。

以下两种情况下的queryObject都是同一对象。

以下是我正在工作的示例

changeRequestExpression.and(queryObject.changeRequest.obligation.clientLocation.client.bookOfBusiness.accountManager.id.in(params.accountManagerIds))

像这样在queryObject上设置QueryInit路径:

@QueryInit("obligation.clientLocation.client.bookOfBusiness.accountManager")
@OneToOne(mappedBy = "assignment", fetch = FetchType.LAZY)
private ChangeRequestDataObject changeRequest;

下面的代码集是中断示例。主要区别在于Q对象字段之一是SetPath,要求我们使用.any()

supportTicketExpression = queryObject.supportTicket.user.clientRoles.any().client.bookOfBusiness.accountManager.id.in(params.accountManagerIds)

像这样在queryObject上设置QueryInit路径:

@QueryInit("user.clientRoles.client.bookOfBusiness.accountManager")
@OneToOne(mappedBy = "assignment", fetch = FetchType.LAZY)
private SupportTicketDataObject supportTicket;

0 个答案:

没有答案