java.lang.NoSuchMethodException: com.hry.store.vo.CategoryVo.<init>(java.lang.Integer, java.lang.Int

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MonkeyBrothers/article/details/82740877

之前在写项目的时候都是使用的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>

一定要一致哟!!!!!!!!!!!!!!!!!!!!

猜你喜欢

转载自blog.csdn.net/MonkeyBrothers/article/details/82740877