java Querydsl:如何编写“复杂”查询
我正在尝试使用querydsl创建一个sql语句。我想得到的是:
SELECT P.KEY, COUNT(P.VALUE)
FROM RESOURCES R JOIN PROPERTIES P ON R.ID = P.ID
WHERE P.KEY = "key" AND p.VALUE = "value"
GROUP BY P.VALUE;
我试图编写一些querydsl代码:
String s = queryFactory
.query()
.from(QResource.resource)
.join(QProperty.property)
.where(QResource.resource.properties.any().key.eq("key").and(QResource.resource.properties.any().value.eq("value")))
.groupBy(QProperty.property.value)
.select(QProperty.property.key, QProperty.property.value.count())
.toString();
我猜它可以简化,但另一方面,我不太清楚它是否经过良好的querydsl编码
有什么想法吗
# 1 楼答案
除了@natros answer之外,布尔运算符还可用于“和”逻辑
布尔构建器也可用于复杂逻辑
# 2 楼答案
更简化的版本是: