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

Spring Boot JPA调用自定义查询报错:找不到Flight的executeMyQuery属性

问题解决

错误原因分析

出现No property 'executeMyQuery' found for type 'Flight'错误,核心原因有两点:

  1. 查询语法不匹配:@Query默认使用JPQL(Java持久化查询语言),你写的select * from flight是原生SQL语法,JPQL需要基于实体类而非数据库表名编写,且不支持*这类原生写法。
  2. 返回类型不兼容:方法声明为void,但执行的是select查询,必须指定对应返回类型,否则Spring Data JPA无法解析方法的预期行为。

修复方案

根据需求提供两种可行修复方式:

方式一:使用JPQL查询

将语句改为JPQL格式,同时指定正确返回类型:

@Repository
public interface FlightRepository extends JpaRepository<Flight, Integer> {

    @Query("select f from Flight f")
    List<Flight> executeMyQuery();
}

方式二:使用原生SQL查询

若坚持用原生SQL,需添加nativeQuery = true参数,并指定返回类型:

@Repository
public interface FlightRepository extends JpaRepository<Flight, Integer> {

    @Query(value = "select * from flight", nativeQuery = true)
    List<Flight> executeMyQuery();
}

额外注意事项

  • 若执行的是更新/删除操作,需添加@Modifying注解,方法返回类型可设为void或int(返回影响行数),且必须配合事务使用。
  • 确保实体类Flight的@Table注解指定的表名与数据库中flight表一致(未指定时,默认用实体类名小写作为表名)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:52:32