繁体   English   中英

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

[英]MyBatis: Attempted to return null from a method with a primitive return type

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

在数据库中,我有表UPDATE_TASK_STATE,其中包含START_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).

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

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

将其更改为resultType="int"

stacktrace指出,您的方法正在返回“ NULL”,但是该方法具有“ int”返回类型,这是Java中的原始数据类型,因此无法返回“ NULL”值。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM