我需要序列化一些由iBatis加载的对象,但是我得到了NotSerializableException,因为lazyLoadingEnabled=是“真”的。
我知道这是一个已知的限制(请参阅https://issues.apache.org/jira/browse/IBATIS-529),但是除了关闭整个应用程序的延迟加载之外,我还没有找到解决方法。
我的问题是,是否有更细粒度的控制来控制延迟加载。这是当前在sqlMapConfig/设置中启用/禁用的,该设置适用于所有sqlMap资源。有没有办法以编程方式或仅针对特定的sqlMaps启用/禁用此功能?
发布于 2012-03-14 05:25:57
从来没有找到控制延迟加载explicitly...however的解决方案,我通过简单地将我的对象转换成XML (因此显式地加载所有必要的字段)并将其用于我的有效负载(以完全避免对象序列化)来解决我的问题...obviously不理想,但它满足了我的需要,并且在性能方面看起来还不错(考虑到对象序列化无论如何都很慢)
发布于 2016-05-11 18:01:42
在你的项目中找到一个带有<sqlMapConfig>元素的配置文件,并且在嵌套的<settings>元素中,你可以指定lazyLoadingEnabled="false",但是如果你的查询使用外部fetch来获取其他复杂的对象,你肯定会有一个真正的堆栈溢出问题!
https://stackoverflow.com/questions/9607643
复制相似问题