问题描述:
在dubbo框架下,使用mybatisplus,直接在controller层中通过service调用方法,并设置queryWrapper作为参数报错。
报错信息:
原因分析:
mybatis-plus 官方已经明确有说wrapper不支持RPC通信。当在模块中通过dubbo的rpc来调用其他服务的方法时,不能使用mybatisplus的条件构造器wrapper来进行方法调用。因为wrapper中包含有泛型 Wrapper<T> ,会导致rpc解析失败,从而导致调用失败。
解决方案:
不在controller层中使用mybatisplus的条件构造器wrapper,增加一个dao层通过对应的xxxMapper使用条件构造器wrapper。(xxxService已经注册到dubbo中,而xxxMapper并没有)