Spring Data JPA如何实现按单字段过滤、另一字段排序取第一条
组合查询实现方案
直接按照Spring Data JPA的方法命名规则拼接两个查询逻辑即可,无需额外编写自定义SQL。
具体实现
在你的Repository接口中添加如下方法定义:
// 入参为指定用户ID,返回该用户提交时间最晚的记录 你的实体类名 findFirstByUserIdOrderBySubmittedDesc(long userId);
方法名逻辑说明
findFirst:限定仅返回查询结果的第一条记录ByUserId:过滤条件,仅匹配USER_ID字段等于传入参数的记录OrderBySubmittedDesc:对过滤后的结果按照SUBMITTED字段倒序排序,排在首位的就是提交时间最晚的记录
调用示例
// 查询用户ID为1024的最晚提交记录 你的实体类名 latestRecord = 你的Repository实例名.findFirstByUserIdOrderBySubmittedDesc(1024L);
补充说明
如果存在同一用户同一时间提交多条记录的场景,需要获取所有时间最晚的记录,可将findFirst修改为findAll,返回值调整为List<你的实体类名>即可。
内容的提问来源于stack exchange,提问作者Nico
相关产品推荐
相关产品推荐

