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

问题描述

SpringBoot + Mybatis 项目中,如下代码,在远行时报错。

Dao 层

---- --- ----------

Mapper 层

-- ----- ------
	------ - ---- ------ ----- ------ - -
	-- ---- - - - - - ---
		--- -------- ---- ----------- -- -------- ------
	---
---

原因分析

Mybatis 进行参数判断的时候,对于单个入参,Mybatis 内置对象,默认采用OGNL解析参数。所以会自动采用对象树的形式取 string.xxx 值,如果没在在方法中定义,则会抛异常报错。

但是对于 entity 类或者 map 类,则没有问题。

解决办法

在 Dao 层提前定义,在参数上加@Param注解。

---- ------ - ----------

Mapper 层不变

-- ----- ------
	------ - ---- ------ ----- ------ - -
	-- ---- - - - - - ---
		--- -------- ---- ----------- -- -------- ------
	---
---
码海无涯苦作舟,编程之路创一流!