Hello,
I'm using lazy loading in iBatis, but this appears to fetch my object
eagerly, effectively increasing the number of statements to exactly N+1.
Lazy loading for collection does work however.
I did some research and found that iBatis does not create proxies for
objects, only for collections.
Am I missing something? After reading the docs I thought that lazy
loading applies to both objects and collections.
Here is what is going in
com.ibatis.sqlmap.engine.mapping.result.loader.LazyResultLoader, lines
66-74
----------------8<---------------
public Object loadResult() throws SQLException {
if (Collection.class.isAssignableFrom(targetType)) {
InvocationHandler handler = new LazyResultLoader(client,
statementName, parameterObject, targetType);
ClassLoader cl = targetType.getClassLoader();
return Proxy.newProxyInstance(cl, LIST_INTERFACES, handler);
} else {
return ResultLoader.getResult(client, statementName,
parameterObject, targetType);
}
}
----------------8<---------------
The same is true for EnhancedLazyResultLoader
Thanks in advance,
Oleg