Картата на резултатите изглежда така:
<resultMap id="UserResult" type="User">
<id property="userId" column="userId"/>
<result property="firstName" column="firstName"/>
<result property="lastName" column="lastName"/>
</resultMap>
Във вашия оператор select променете типа параметър на java.util.Map.
<select id="getUsers" statementType="CALLABLE" parameterType="java.util.Map">
{call GetUsers(#{users, jdbcType=CURSOR, javaType=java.sql.ResultSet, mode=OUT, resultMap=UserResult})}
</select>
Интерфейсът на вашия картограф изглежда така, изглежда, че в момента наричате това DAO. Начинът, по който съм го правил в миналото, е да направя интерфейс на картографа, който се инжектира в DAO и DAO е това, което извиква методите на картографа. Ето примерен интерфейс за картографиране:
public interface UserMapper {
public Object getUsers(Map<String, Object> params);
}
След това този клас картограф ще бъде инжектиран в DAO клас и ще направи извикването по следния начин:
public List<User> getUsers() {
Map<String, Object> params = new HashMap<String, Object>();
ResultSet rs = null;
params.put("users", rs);
userMapper.getUsers(params);
return ((ArrayList<User>)params.get("users"));
}