我需要序列化由iBatis加载的一些对象,但是因为lazyLoadingEnabled =“true”而得到NotSerializableException。
我发现这是一个已知的限制(请参阅https://issues.apache.org/jira/browse/IBATIS-529),但我还没有找到一个解决方法,除了为整个应用程序关闭延迟加载。
我的问题是是否对延迟加载有更精细的控制。这是当前在sqlMapConfig / settings中启用/禁用的,它适用于所有sqlMap资源。有没有办法以编程方式启用/禁用此功能,或仅用于某些sqlMaps?
答案 0 :(得分:0)
从未找到明确控制延迟加载的解决方案...但是,我确实通过简单地将我的对象转换为XML(因此显式加载所有必需的字段)并将其用于我的有效负载(以完全避免对象序列化)来解决我的问题...显然不理想,但它对我的需求起作用并且看起来非常明显(假设对象序列化很慢)
答案 1 :(得分:0)
使用<sqlMapConfig>
元素在项目中查找配置文件,在嵌套的<settings>
元素中,您可以指定lazyLoadingEnabled="false"
,但如果您的查询使用外部提取获取其他复杂对象,您肯定会会有一个真正的 Stack Overflow 问题!