There is no setter for property named ‘o RETURN MSG‘ in ‘class java.lang.class‘ (mybatis 调用存储过程出错)

调用存储过程报这个错,网上找了很多解决方案
有的说是多空格,有的说是字段不对应,有的说是mybatis参数写多了,或者少写了,如果你有实体类,可能是实体类没有set方法。
通过仔细的查看,发现上面的解决方案,在我这都没有对应上,我没有实体类,返回的是map,所以不用考虑setget方法。
最终的解决方案是我的dao 接口写错了
错误写法:
Map<String,Object> getxxxx(@param(value = “id”) String id);

正确写法: void getxxxx(Map<String,Object> map);

通过分析我的写法是入参是一个字符串,返回值是一个map,正常开发是没有问题的,
当调用存储过程,这种接口函数,就不行了,存储过程会把返回结果,返回到你入参的map里,我们只需要关注入参的map里有没有返回值就行了。通过上面的解释,可想而知,mybatis存储过程给我返回值的时候,并没有往我方法的返回值map上注入,而是往我的方法参数上注入了,一个map注入到字符串类型上肯定会出错的,把方法的参数类型改成map类型就行了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值