【问题标题】:Spring Data JPA: Filter by one Field, sort by another field and get firstSpring Data JPA:按一个字段过滤,按另一个字段排序并获得第一
【发布时间】:2021-09-24 09:59:56
【问题描述】:
假设有一个包含以下列的表格:
状态 - 已提交 - USER_ID
我想查询存储库接口,以获取某个 USER_ID 最后提交的行。
我知道有findByUserId(long userId) 和findFirstByOrderBySubmittedDesc(),但我不知道如何组合它们。
如何结合这两种方法?
【问题讨论】:
标签:
spring-data-jpa
query-builder
spring-repositories
【解决方案1】:
好的,我通过反复试验弄明白了:
findFirstByUserIdOrderBySubmittedDesc(long userId)
也许这对某人有帮助:)
【解决方案2】:
在你的 repo 中定义一个方法:
Page<YourEntity> findByUserId(Long userId, Pageable page)
这样称呼它。创建Pageable:
Pageable firstBySubmittedDescending =
PageRequest.of(0, 1, Sort.by("submitted").descending());
将它传递给你的方法。
请记住,您得到的是 Page 而不是一个实体。需要在页面调用getContent()获取。