Spring JPA接口投影调用报错无访问器方法,如何获取字段值?
问题根因
- Spring Data JPA 的接口投影要求抽象方法必须符合 Java Bean getter 命名规范,你当前定义的
memberID()、dateEntry()不符合规则,框架无法识别为属性访问器,因此抛出对应报错。
修复步骤
- 修改投影接口的方法名,统一添加
get前缀,遵循驼峰命名规则:
public interface ConfirmationDTO { Long getMemberID(); LocalDate getDateEntry(); }
- 确认存储过程
get_confirmation返回的结果集列名和投影属性匹配:- 存储过程返回列名可以是驼峰格式的
memberID、dateEntry,也可以是下划线格式的member_id、date_entry(只要项目开启了驼峰下划线自动转换即可自动映射) - 如果列名不匹配,可在存储过程的查询语句中给列加别名对齐,例如
SELECT member_id AS memberID, date_entry AS dateEntry FROM 业务表
- 存储过程返回列名可以是驼峰格式的
- 无需修改DAO层的现有方法定义,调整后即可正常通过投影接口获取对应字段值。
内容的提问来源于stack exchange,提问作者Fancy
相关产品推荐
相关产品推荐

