java - 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
解决方案
推荐阅读
- scala - Scala遗留代码:如何在执行路径的不同点访问输入参数?
- laravel - Laravel 翻译动态电子邮件(不带翻译文件)
- javascript - JS - 发送电子邮件需要用户登录 gmail 帐户
- python - 使用条件的变量转换不能正常工作,如何调试?
- swift - 钥匙串 API 只查看系统钥匙串而不是登录钥匙串 Mac OS Swift
- gitlab-ci - 为什么我找不到 Gitlab 缓存目录?
- javascript - Laravel + Vue - 将多维 PHP 数组传递给 vue 组件
- typescript - 为什么打字稿编译器不喜欢铸造?
- python - 通过按下 tkinter 中的按钮向文本小部件键入字母
- python - Pandas:对于数据框中的每个子集,将列中的值设置为等于该列子集的最大值