Dubbo接口返回对象变成HashMap

2,161 阅读1分钟

问题:
调用dubbo接口,生产者返回的是List<Object>,消费者接受到的是List<HashMap>
使用GetSet方法赋值成功返回,使用mybatis的getByPage方法返回失败

原因:
在使用MyBatis的getByPage方法返回结果对象被增强
在MyBatis中的FastResultSetHandler中有对懒加载配置的判断,当有设置懒加载配置时,会对结果做一层代理,使返回的List中的Object被增强

解决方法:
将mybatis-config中的lazyLoadingEnabled配置修改成flase

<configuration>
<settings>
<setting name="lazyLoadingEnabled" value="false"/>
</settings>
</configuration>

总结:
dubbo返回变成HashMap一般是生产者与消费者的两个对象不一致导致
mybatis的懒加载配置会导致返回的对象被代理增强