JPA查询分组里的最新数据
程序员文章站
2022-04-21 16:37:19
...
如题,用到分组查询,并且要求是每组的最新一条数据,见代码如下:
@Query("SELECT d from RealTimeData d "
+ "where d.id in (SELECT MAX(id) from RealTimeData GROUP BY simCard) "
+ " and d.simCard in (SELECT cd.simCard from Device cd where cd.customer.id=?1)"
)
public Page<RealTimeData> findDataListByCustomerId(Long customerId,Pageable pageable);
解释:
- Device表时存储用户的设备信息,其中字段 Customer customer为用户。
- simCard字段存放设备的唯一识别码。
- SELECT MAX(id) from RealTimeData GROUP BY simCard) 查出按设备识别码的最新信息
- (SELECT cd.simCard from Device cd where cd.customer.id=?1) 查出用户名下的设备的识别码
- RealTimeData 和 Device都是实体类
以上,实际运行,因数据量有限,尚未出现BUG,如有问题,请给我留言,谢谢!
上一篇: 通俗易懂设计模式解析——策略模式