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






Reply via email to