iBatis LazyLoading配置

时间:2012-03-07 19:16:45

标签: lazy-loading ibatis

我需要序列化由iBatis加载的一些对象,但是因为lazyLoadingEnabled =“true”而得到NotSerializableException。

我发现这是一个已知的限制(请参阅https://issues.apache.org/jira/browse/IBATIS-529),但我还没有找到一个解决方法,除了为整个应用程序关闭延迟加载。

我的问题是是否对延迟加载有更精细的控制。这是当前在sqlMapConfig / settings中启用/禁用的,它适用于所有sqlMap资源。有没有办法以编程方式启用/禁用此功能,或仅用于某些sqlMaps?

2 个答案:

答案 0 :(得分:0)

从未找到明确控制延迟加载的解决方案...但是,我确实通过简单地将我的对象转换为XML(因此显式加载所有必需的字段)并将其用于我的有效负载(以完全避免对象序列化)来解决我的问题...显然不理想,但它对我的需求起作用并且看起来非常明显(假设对象序列化很慢)

答案 1 :(得分:0)

使用<sqlMapConfig>元素在项目中查找配置文件,在嵌套的<settings>元素中,您可以指定lazyLoadingEnabled="false",但如果您的查询使用外部提取获取其他复杂对象,您肯定会会有一个真正的 Stack Overflow 问题!