JPA查询指定部分字段报错 Column ‘xxx‘ not found.

9 阅读1分钟

问题描述

使用JPA查询指定部分字段报错 Column ‘xxx‘ not found.

案例如下

@Query(value = " SELECT loan_no, repay_type FROM test.table_name WHERE loan_no = :loanNo ORDER BY create_time DESC LIMIT 1 ",nativeQuery = true)
LoanApply findLastOne(@Params("loanNo") String loanNo);

报错信息提示 Column ‘xxx‘ not found., 改成 SELECT loan_no, repay_type, xxx 后又提示 Column ‘yyy‘ not found.

原因分析

是因为对应的接收实体类字段与查询字段数量不同导致

解决方案1

改用 SELECT *

解决方案2

新建一个只有 loan_norepay_type 字段的实体类去接收

解决方案3

使用 List<Object[]> 接收, 在业务逻辑中遍历 list 获取每个 Object[] 数组, Object[0], Object[1] 对应查询的字段顺序 loan_norepay_type