最近打算在原先的系统上使用dubbo。
系统使用的是mybatis,开启了延迟加载:
系统使用的是mybatis,开启了延迟加载:
<setting name="lazyLoadingEnabled" value="true" /> <setting name="aggressiveLazyLoading" value="false" />
调试发现接口返回的是代理对象,所以controller(springMVC)得到的数据属性都是null。
如果关掉延迟加载,得到的数据有值了,但系统部分原有的功能受到了影响,会加载一些原先需要延迟加载的数据,且如下的树对象陷入不停循环,导致内存溢出:
<resultMap type="BaseTreePojo" id="baseTreePojo" extends="com.lmiky.platform.sort.pojo.BaseSortPojo.baseSortPojo"> <result column="name" property="name"/> <result column="leaf" property="leaf"/> <association property="parent" column="parentId" select="com.lmiky.platform.tree.pojo.BaseTreePojo.findById"/> <collection property="children" column="id" select="com.lmiky.platform.tree.pojo.BaseTreePojo.listByParent"/> </resultMap>
有什么尽量不修改原有系统代码的解决方法吗,dubbo是不是无法序列化代理对象。
解决方案:30分
解决方案:70分