QueryDSL错误的括号,其中包含“ OR”和“ AND”

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

anyOf(org.id.isNull(), org.employees.contains(employee)) .and(org.id.eq(currentOrg.getId()))

预期查询是:

org.id is null or (org_id=? and (? in (select employees2_.employees_id from org_employees employee2_ where abstractor1_.id=employees2_.org_id)))) 

但是结果:

org.id is null or org_id=? and (? in (select employees2_.employees_id from org_employees employee2_ where abstractor1_.id=employees2_.org_id))) 

我想念什么?

querydsl
1个回答
0
投票

我想念什么?

您的括号匹配不正确,querydsl做正确的事。

anyOf在这里不是必需的,orand可以做到。类似于:

org.id.isNull()
.or(org.id.eq(<something>).and(<subquery>))
© www.soinside.com 2019 - 2024. All rights reserved.