org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorEx

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException:

No constructor found in com.lu.vote1.domain.Options matching [java.lang.Integer, java.lang.String, java.lang.Integer]


Caused by: org.apache.ibatis.executor.ExecutorException: No constructor found in com.lu.vote1.domain.Options matching [java.lang.Integer, java.lang.String, java.lang.Integer]


今天在做SSM整合测试的时候,出现了上述的错误;图片如下org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorEx_第1张图片


错误提示的意思是没有构造 为 Integer,String,Integer的构造方法;因为之前需要自己写了一个String,Integer的构造方法;当mybatis在做映射的时候找不到Intege,String,Integer的构造方法;所以就会报错;于是提供了全参的构造方法就ok了;org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorEx_第2张图片


总结,如果你在做Mybatis映射的时候,根据需求做了一个不是全参的构造方法;那么Mybatis运行时会提示报错;因为你在实体中显示的指定了构造方法,所以在Mybatis做映射的时候,会找是全参的构造方法;但是你只有一个不是全参的构造方法,导致无法匹配,最后报错;

所以在SSM项目的实体中,如果构造了一个不是全参的构造方法,那么你一定要再提供一个全参的构造方法;

还有一个容易犯的错误,定义表的时候 表明不要和该表的字段相似;比如表options中有一个option字段,这样定义是错误的;因为在Mybatis批量插入的时候不识别;一直报错,之后在Navicat测试的时候才发现,这真的是一个坑;







你可能感兴趣的:(org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorEx)