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

Spring Boot中无需@Query/@NativeQuery实现Hibernate查询返回List<String>

无需@Query或@NativeQuery获取Customer姓名列表的方法

当然有,Spring Data JPA提供了两种无需编写注解查询的方式来实现需求:

1. 使用派生查询方法

Spring Data JPA可以根据方法名自动生成JPQL查询,直接返回指定属性的列表。只需在你的Repository接口中定义如下方法:

List<String> findNameBy();

或者采用更直观的命名:

List<String> findAllName();

框架会自动解析方法名,生成对应的查询语句 select c.name from Customer c,最终返回所有Customer的name属性列表。

注意:确保Customer实体类中存在name属性,并且有对应的getName() getter方法,这样框架才能正确映射属性值。

2. 使用投影接口

如果后续需要扩展返回的属性,投影接口是更灵活的方式:
首先定义一个仅包含需要获取属性的投影接口:

interface CustomerNameProjection {
    String getName();
}

然后在Repository接口中定义返回该投影列表的方法:

List<CustomerNameProjection> findAll();

调用该方法后,你可以遍历列表通过getName()方法提取所有姓名:

List<String> names = customerRepository.findAll().stream()
    .map(CustomerNameProjection::getName)
    .collect(Collectors.toList());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 23:48:24