首页 > 解决方案 > MyBatis foreach 类型异常

问题描述

不太确定 foreach 条件的语法。由于使用了数组,collection 应该是我的 key,item 应该是我的 value。但是它说#2 是空的。我可以问为什么吗?

我有一个整数数组,DAOMap 扩展了 HashMap<Object, Object>

学生对象详细信息包含两个变量

    private int studentID;
    private String contextID; 
    int[] slotID  // array of integer
    StudentLogin login // Object of student login.

    final DAOMap params = new DAOMap("MASS DELETE");
    params.put("slotID", slotID);
    params.put("updatedBy", login.getStudentID);


    mapper.massDelete(params); // Calling of the sql by passing in array of integers.


在 mapper.xml 中

 <update id="massDelete" parameterType="DAOMap">
        UPDATE ${schemaName}SLOT SET
            UPDATEDBY=#{updatedBy},
            DTUPDATED=current timestamp
        WHERE ID in
        <foreach collection="slotID" item="item" index="index"   separator="," 
    open = "(" close=")" >
                #{item}
            </foreach>
            
    </update>

服务器日志

org.mybatis.spring.MyBatisSystemException:嵌套异常是 org.apache.ibatis.type.TypeException:无法设置映射参数:ParameterMapping{property='ID',mode=IN,javaType=class java.lang.Object,jdbcType =null,numericScale=null,resultMapId='null',jdbcTypeName='null',表达式='null'}。原因:org.apache.ibatis.type.TypeException:错误为 JdbcType null 的参数 #2 设置非 null 。尝试为此参数或不同的配置属性设置不同的 JdbcType。原因:org.apache.ibatis.type.TypeException:错误为 JdbcType null 的参数 #2 设置非 null 。尝试为此参数或不同的配置属性设置不同的 JdbcType。原因:com.ibm.db2.jcc.am.SqlSyntaxErrorException: [jcc][1091][10824][3.64.106] 无效数据转换:参数实例 [I@d2fe03dc 对请求的转换无效。错误代码=-4461,SQLSTATE=42815

标签: javaspringdb2mybatis

解决方案


推荐阅读