Hi, I am also new to ibatis. I would like to know the title of the book you are using.
I am interested in buying iBatis in action. Have you read this book. Thanks, giuseppe ________________________________ Da: Kuntz, Tim [mailto:[EMAIL PROTECTED] Inviato: venerdì 5 gennaio 2007 3.24 A: user-java@ibatis.apache.org Oggetto: iBatis Book - Lazy Loading Description The new iBatis book describes lazy-loading as follows (pg 131). "To use lazy loading, we need to edit the SqlMapConfig.xml file to enable it by changing the lazyLoadingEnabled attribute to true in the <setting> element. If you want to use the cglib enhanced version of lazy loading, you will want to download it, add it to your application's classpath, and change the enhancementEnabled attribute of the <setting> element to true as well." After setting up a sample similar to that in the book, I noticed that lazy-loading only appears to work correctly if BOTH lazyLoadingEnabled and enhancementEnabled are set to true. Running the following code executes the selects as the objects are requested. person = sqlMapper.queryForObject("Person.selectPerson"); // runs select ... from person person.getAddress(); // runs select .. from address person.getAddress().getState(); // runs select .. from state Setting enhancementEnabled to false causes all of the select statements to execute initially. Changing lazyLoadingEnabled to false doesn't change the behavior. person = sqlMapper.queryForObject("Person.selectPerson"); // runs all 3 select statements person.getAddress(); person.getAddress().getState(); Is this correct behavior? If so, when would I benefit from lazyLoadingEnabled = "true"? I'm using iBatis version 2.3.0.677 Thanks, Tim