我的数据库连接与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;