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

Reply via email to