I'm having a problem with cached stored procedures call, using null parameters. When I call a stored procedure like: "call user.some_sp(?,?)" I get the same cacheKey for parameters: [1, null] and [null, 1] I think that the problem is in class com.ibatis.sqlmap.engine.exchange.BaseDataExchange on method getCacheKey: for (int i = 0; i < data.length; i++) { if (data[i] != null) { key.update(data[i]); } } If the paramValue is null, it is ignored. Then when I get the cacheKey, on the parameters values part, I get |1| for both parameters pair.