问题:
调用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的懒加载配置会导致返回的对象被代理增强