我有一个使用了排名的@Formula字段。
@Formula("rank() OVER(order by num_calls, last_name, name)")
var ranked: Long = 0
问题是需要添加where子句但秩必须是所有数据的,而不是只对用where过滤的数据。
对于标准sql,我可以使用子查询:
select * from (select name, rank() OVER(order by num_calls, last_name, name) from data) as t where name = 'Bob'
但是,对于Spring Data和QueryDSL,我不知道如何使用。
我需要使用querydsl动态查询。
有什么想法吗?
1条答案
按热度按时间lf5gs5x21#
如果您想这样做,您必须深入研究Blaze-Persistence,它工作在JPA/Hibernate之上,并且集成了QueryDSLhttps://persistence.blazebit.com/documentation/core/manual/en_US/index.html#subquery-joins