gpt4 book ai didi

java - Querydsl:如何编写 "complex"查询

转载 作者:行者123 更新时间:2023-12-02 11:55:01 24 4
gpt4 key购买 nike

我正在尝试使用 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 编码。

有什么想法吗?

最佳答案

更简化的版本是:

QResource r = QResource.resource;
QProperty p = QProperty.property;
queryFactory
.select(p.key, p.value.count())
.from(r)
.join(p).on(r.id.eq(p.id))
.where(p.key.eq("key"), p.value.eq("value"))
.groupBy(p.value)
.fetchOne();

关于java - Querydsl:如何编写 "complex"查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47661028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com