偶遇MyBatis之 java.lang.UnsupportedOperationException

报错信息:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.UnsupportedOperationException
### The error may exist in file [C:\Users\5618\IdeaProjects\easy-home\eh-my-dao\target\classes\sqlmaps\mybatis\DepartmentUser.xml]
### The error may involve com.xgt.dao.mybatis.department.DepartmentUserDao.queryDepartmentUserIdByUserId
### The error occurred while handling results
### SQL: SELECT user_id FROM yp_department_user WHERE department_id =           (SELECT department_id FROM yp_department_user WHERE user_id = ?)
### Cause: java.lang.UnsupportedOperationException

Dao层方法:

List<Integer> queryDepartmentUserIdByUserId(Integer loginAdminUserId); 

xml文件sql写法: 

<select id="queryDepartmentUserIdByUserId" parameterType="java.lang.Integer" resultType="java.util.List">
      SELECT user_id FROM yp_department_user WHERE department_id =
      (SELECT department_id FROM yp_department_user WHERE user_id = #{loginAdminUserId})
</select>

 分析错误地方:

接收传参:parameterType="java.lang.Integer"没有问题,

返回参数:resultType="java.util.List"看上去很合理,但是错就错在这里,

解决办法:将java.util.List改为Integer。

总结: 

原因就在于resultType代表的是List中的元素类型,而不应该是List本身,究其原因就在于被dao中的方法声明(标记处)

List<Integer> queryDepartmentUserIdByUserId(Integer loginAdminUserId);

给迷惑住了

切记:resultType返回的是集合中的元素类型,而不是集合本身

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值