我正在使用骆驼 2.17.0 并且必须使用 SQL IN 子句执行更新查询。查询是
update MY_TABLE set STATUS = :#status where ID in (:#in:ids) AND TYPE = :#type
我已将所有参数设置为驼峰头,参数ids是 List<Long> 并且在执行期间列表中有四个元素。但我得到一个 sql 异常
PreparedStatementCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; Number of parameters mismatch.
Expected: 6, was: 4; nested exception is java.sql.SQLException: Number of parameters mismatch. Expected: 6, was: 4
我不确定出了什么问题。当我对除参数列表 ID 之外的所有值进行硬编码时,我能够更新表而不会出现任何错误。修改后的查询就像
update MY_TABLE set STATUS = 'SUCCESS' where ID in (:#in:corrIds) AND TYPE = 'type'
是否有任何规定,当我们使用 IN 子句时,我们不能在查询中提供任何其他参数?请指教。