我有一个JPAQuery<?>
的实例,需要检索计数。但是,由于该表可能包含许多项目(百万),因此我想将计数限制为给定的最大值,例如50,000。
当前的QueryDSL代码可以有效地做到这一点:
query.fetchCount();
现在我想要的修改在原始sql中是微不足道的:
select count(*) from (<whatever query> limit 50000);
但是,我不知道如何在querydsl中表达这一点。以下代码不正确,因为.from()
采用实体路径,但是query
是查询:
JPAExpressions.select(Wildcard.all)
.from(query.limit(50000))
.fetchCount();
我正在使用querydsl 4。
答案 0 :(得分:0)
JPAExpressions.select(Wildcard.all)
返回SimplyQuery的子级,您可以对其调用limit。
JPAExpressions.select(Wildcard.all)
.from(entity)
.limit(50000)
.fetchCount();