问题描述
使用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_no 和 repay_type 字段的实体类去接收
解决方案3
使用 List<Object[]> 接收, 在业务逻辑中遍历 list 获取每个 Object[] 数组, Object[0], Object[1] 对应查询的字段顺序 loan_no 和 repay_type