mybatis出现There is no getter for property named ‘Id‘ in ‘class com.baomidou.mybatisplus

前言

头一次用ldap,这边新的项目用的这个,自己就照葫芦画瓢的也去使用了,但在test环境运行的时候,出现了这个bug:
Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class com.baomidou.mybatisplus.core.conditions.query.QueryWrapper'

一、问题原因

乍一看这个bug说的很清晰,就是没有名为id的属性的getter方法,但是我们是用的lombok的@Data注解,默认是有的,为啥说没有,所以这个错误提示信息是有点模棱两可的,于是查了几篇类似错误的文章和解决办法,有篇文章说的比较符合,我一看确实和我的用法是一样的。
原因也是我穿错了参数,但奇怪的是为啥没有报错呢?
mybatis出现There is no getter for property named ‘Id‘ in ‘class com.baomidou.mybatisplus_第1张图片
selectVoById方法的入参需要一个id就行
mybatis出现There is no getter for property named ‘Id‘ in ‘class com.baomidou.mybatisplus_第2张图片
而不是需要一个LambdaQueryWrapper这样的对象,所以就报错了,但这个bug信息我还不知道为啥会提示id没有getter方法,后面有时间再梳理一下吧。

二、解决办法

解决办法就是方法selectVoById中的入参直接放projectId就可以,不用再包装一层了。
所以我的错误就在于用错了方法,没有理解各个方法之间的差异。

另外,再提供两个解决思路:
1、去对应的model看,是不是真的缺少getter方法。
2、如果并不是缺少getter方法,那再检查一下是不是拼写出现错误了。因为拼写出现了错误,sql语句传入的参数与model对应的实体参数不一致的话,也会报这种错误。

------- 你知道的越多,不知道的越多--------

你可能感兴趣的:(mybatis,java,mysql)