完整报错
当出现这个错误的时候先检查数据类型是否匹配,如果没问题的话往下看
nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating
class com.yssz.coursewareLearning.pojo.User with invalid types
(Integer,String,String,Role,Student,Teacher) or values (9,ljh,$2a$10$m2fWXgedtSI.sZB1Kl2t2.f9j19rni8NYzdukn6NR3r3mkGmSRgo6,1,ROLE_A
DMIN,null). Cause: java.lang.IllegalArgumentException: argument type mismatch
问题定位
构造器不匹配而非参数不匹配
解决方法
- 加上无参构造方法,使用lombok的话加上注解@NoArgsConstructor
- 用不上有参构造的话就删了吧
问题起因及解析
先说结论:构造器不匹配而非参数不匹配
测接口的时候报的错,虽然说是类型不匹配,查了半天并没有发现,一筹莫展的时候想到了有没有可能是构造器的问题,当时的代码如下
@Data
@AllArgsConstructor
public class User implements UserDetails {
@Id
@Alias("uid")
private Integer id;
private String username;
}
本文介绍了在使用MyBatis时遇到的构造器不匹配问题,详细分析了错误原因,即AllArgsConstructor注解生成的有参构造器导致在映射对象时无法找到无参构造器。解决方案是添加@NoArgsConstructor注解或删除有参构造器,确保在对象实例化时能够正确创建。此外,作者认为这种错误提示可以更加明确,以帮助开发者更快定位问题。
333

被折叠的 条评论
为什么被折叠?



