mybatis:试图从具有原始返回类型的方法中返回null



我的数据库连接与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中,我有table update_task_state,其中包括启动_update提交的。

我的问题是,当我运行getUpdateTaskStateStart(Task)(并发送任务参数,其中包括Rashutid =" 248"和TaskID =" 2449",我会收到错误:

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).

我的功能怎么了?谢谢!

您的映射器XML指定resultType="Integer",但getUpdateTaskStateTask()想要返回原始INT,而不是整数包装类别。

将其更改为resultType="int"

stacktrace指出,您的方法正在返回" null",但是该方法具有" int"返回类型,它是Java中的primitve数据类型,因此无法返回" null"价值。

将方法的返回类型更改为其包装类类" Integer",那么至少例外将消失。

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

org.apache.ibatis.annotations.select;org.apache.ibatis.annotations.update;

最新更新