欢迎大家关注我的公众号,添加我为好友!
之前在写项目的时候都是使用的mybatis逆向工程来生成的mapper 和 mapper.xml 今天使用spring boot写项目的时候,遇到了需要自己填写的mapper。
错误:
java.lang.NoSuchMethodException: com.hry.store.vo.CategoryVo.<init>(java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String)
at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_141]
at java.lang.Class.getDeclaredConstructor(Class.java:2178) ~[na:1.8.0_141]
at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:68) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.reflection.factory.DefaultObjectFactory.create(DefaultObjectFactory.java:50) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createParameterizedResultObject(DefaultResultSetHandler.java:648) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:613) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:590) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:392) ~[mybatis-3.4.5.jar:3.4.5]
解决办法:
1.查看一下自己封装的Vo或者其他实体类对象有没有添加无参构造器
public SecondCategory() {
super();
}
2.他如果使用了Mapper.xml 请检查配置文件中的构造器初始化顺序,和封装的实体类中的构造器顺序(要一致哟)。
public SecondCategory(Integer secondCategoryId, Integer topCategoryId, String secondCategoryName, Integer status, Date createTime, Date updateTime) {
this.secondCategoryId = secondCategoryId;
this.topCategoryId = topCategoryId;
this.secondCategoryName = secondCategoryName;
this.status = status;
this.createTime = createTime;
this.updateTime = updateTime;
}
<resultMap id="BaseResultMap" type="com.hry.store.vo.CategoryVo">
<constructor>
<idArg column="top_category_id" jdbcType="INTEGER" javaType="java.lang.Integer"/>
<arg column="top_category_name" jdbcType="VARCHAR" javaType="java.lang.String"/>
<arg column="second_category_id" jdbcType="INTEGER" javaType="java.lang.Integer"/>
<arg column="second_category_name" jdbcType="VARCHAR" javaType="java.lang.String"/>
</constructor>
</resultMap>
一定要一致哟!!!!!!!!!!!!!!!!!!!!
欢迎大家关注我的公众号,添加我为好友!