MyBatis:尝试从具有基本返回类型的方法返回null

时间:2017-09-06 06:47:07

标签: java spring model-view-controller mybatis

我的数据库连接是mybatis, 我有这个功能的DAO:

public int getUpdateTaskStateStart(Task task);

实施位于XML文件中:

<select id="getUpdateTaskStateStart" resultType="Integer" parameterType="com.ladpc.mobile.entities.Task">

        SELECT START_UPDATE
        FROM UPDATE_TASK_STATE
            WHERE 
        TASK_ID = #{taskId} AND RASHUT_ID=#{rashutId} 

    </select>

在DB中,我有表UPDATE_TASK_STATE,包括START_UPDATE归档。

我的问题是,当我运行getUpdateTaskStateStart(Task)(并发送包含rashutId =&#34; 248&#34;以及taskId =&#34; 2449&#34;文件内部)的任务参数时,我得到错误:

org.apache.ibatis.binding.BindingException: Mapper method 'com.ladpc.mobile.dao.AssesmentTasksDao.getUpdateTaskStateStart attempted to return null from a method with a primitive return type (int).

我的功能出了什么问题? 谢谢!

3 个答案:

答案 0 :(得分:2)

您的Mapper XML指定resultType="Integer",但getUpdateTaskStateTask()想要返回原始int,而不是Integer包装类。

将其更改为resultType="int"

答案 1 :(得分:0)

stacktrace声明,您的方法返回“NULL”,但该方法具有“int”返回类型,这是Java中的原始数据类型,因此不能返回“NULL”值。

将方法的返回类型更改为其包装类“Integer”,然后至少该异常将消失。

答案 2 :(得分:0)

<Select> -> Null, <Update> -> int

org.apache.ibatis.annotations.Select; org.apache.ibatis.annotations.Update;