Querydsl.JPQLQuery 获取记录数
Posted
技术标签:
【中文标题】Querydsl.JPQLQuery 获取记录数【英文标题】:Querydsl.JPQLQuery getting the number of records 【发布时间】:2021-09-27 19:03:44 【问题描述】:有什么方法可以只从 JPQL 查询中获取记录数而不形成列表? 当有更多的记录时,这将影响性能。这是我到目前为止所做的。使用 querydsl-3.7.4
Expression[] groupByExpression = // getting the group by Expression
Predicate whereCondition = // getting the where condition predicate
long count = query.from(myEntityName)
.where(whereCondition)
.groupBy(groupByExpression)
.list(constructorExpression).size()
【问题讨论】:
【参考方案1】:您应该升级到 Querydsl 4 或 5 并使用 .fetchCount()
而不是 fetch()
(从 Querydsl 4 开始,这是 list()
的替代品)。
【讨论】:
有没有其他办法。我使用的是 3.7.4 版本,没有权限升级到最新版本。 Querydsl 3 已经有 5 年没有维护了。那里可能存在fetchCount()
的替代方案,但五年后谁仍然知道 ;-)以上是关于Querydsl.JPQLQuery 获取记录数的主要内容,如果未能解决你的问题,请参考以下文章