我的数据库连接是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).
我的功能出了什么问题? 谢谢!
答案 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;