nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'adminId' in 'class java.lang.String'

2025.02.18 22:47
阅读 14
问题描述
在 SpringBoot + Mybatis 项目中,如下代码,在远行时报错。
Dao 层
---- --- ----------
Mapper 层
-- ----- ------
------ - ---- ------ ----- ------ - -
-- ---- - - - - - ---
--- -------- ---- ----------- -- -------- ------
---
---
原因分析
Mybatis 进行参数判断的时候,对于单个入参,Mybatis 内置对象,默认采用OGNL解析参数。所以会自动采用对象树的形式取 string.xxx 值,如果没在在方法中定义,则会抛异常报错。
但是对于 entity 类或者 map 类,则没有问题。
解决办法
在 Dao 层提前定义,在参数上加@Param
注解。
---- ------ - ----------
Mapper 层不变
-- ----- ------
------ - ---- ------ ----- ------ - -
-- ---- - - - - - ---
--- -------- ---- ----------- -- -------- ------
---
---
学无止境 学至分享
大家好,我是对IT技术着迷的家伙。只为帮助广大程序猿,将正确的内容带给需要的人。

学至分享
微信小程序
随时随地、想看就看

GM记账助手
微信小程序
方便快捷、界面美观

eView
微信小程序
漂亮的跨平台组件库
文章标签
推荐工具