resultMap ,association collection 分别根据 type javaType ofType指定的类型来创建相应的实例对象,创建实例对象是根据实体类的零参构造方法。所以说,要使用resultMap,association collection 必须要对应的实体类添加零参构造方法。否则,就会出现错误。
具体错误1(resultMap对应的type实体类没有无参构造器):
无参构造注释了
错误 :
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating class cn.edu.nuc.pojo.User with invalid types (String,String,Role,List) or values (admin,admin,1,1). Cause: java.lang.IllegalArgumentException: argument type mismatch
org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
解决:打开无参构造器的注释就可以了
具体错误2(association javaType对应的实体类没有无参构造方法)
错误:
Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in cn.edu.nuc.pojo.Role matching [java.lang.String, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String, java.lang.Integer]
解决:为role添加实体类无参构造方法即可