You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JpaRepository获取Long类型ID列表(无需@Query)

不使用@Query实现JpaRepository返回ID列表的方法

完全可以不使用@Query注解实现,Spring Data JPA的派生查询语法支持直接指定返回字段,具体有两种简洁方式:

1. 直接返回ID列表(推荐)

直接在方法名中明确指定要查询的id字段,Spring Data JPA会自动生成对应的查询语句,返回Long类型的ID列表:

List<Long> findIdByUserId(Long userId);

这个方法会被解析为SQL:SELECT e.id FROM Education e WHERE e.userId = ?1,直接返回符合条件的所有ID,无需额外处理。

2. 使用接口投影

如果需要灵活扩展(比如后续要返回其他字段),可以定义一个仅包含id的投影接口:

interface EducationIdProjection {
    Long getId();
}

然后定义查询方法:

List<EducationIdProjection> findByUserId(Long userId);

使用时遍历投影列表提取ID即可:

List<Long> idList = projectionList.stream()
                                  .map(EducationIdProjection::getId)
                                  .collect(Collectors.toList());

两种方式都不需要手动编写@Query注解,完全依赖Spring Data JPA的派生查询能力。

内容的提问来源于stack exchange,提问作者selvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:32:34