ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Poitras Christian" <Christian.Poit...@ircm.qc.ca>
Subject RE: lazy loading confusion
Date Wed, 27 Sep 2006 14:40:56 GMT
This is possible.
Try to turn on enhancement (also add needed jar) for lazy loading and
see what happens.

Christian

-----Original Message-----
From: Tom Duffey [mailto:tduffey@utilivisor.com] 
Sent: Wednesday, 27 September 2006 10:34
To: user-java@ibatis.apache.org
Subject: Re: lazy loading confusion


On Sep 27, 2006, at 9:28 AM, Poitras Christian wrote:

> Maybe your application is accessing the "members" property when the 
> object is populating.
>
> Try to turn on logging and see what happens. Add a log statement in 
> your "members" property getter to be sure.

Did this.  The getter is never called, only the setter.  This
application is using Spring 1.x for some AOP logging, could it be
manipulating some bytecode somehow to make iBATIS think it needs to load
the data?

Tom

>
> Christian
>
> -----Original Message-----
> From: Tom Duffey [mailto:tduffey@utilivisor.com]
> Sent: Wednesday, 27 September 2006 09:25
> To: user-java@ibatis.apache.org
> Subject: Re: lazy loading confusion
>
>
> On Sep 27, 2006, at 1:41 AM, Niels Beekman wrote:
>
>> Can we see your config?
>
> What all would you like to see?  It's a large application and the 
> example I posted is just a snippet.  Here's more from my sql config 
> and dao config:
>
> <sqlMapConfig>
>      <properties resource="org/projectFoundry/config/
> jdbc.properties"/>
>
>      <settings enhancementEnabled="true"/>
>
>      <transactionManager type="JDBC">
>          <dataSource  type="SIMPLE">
>              <property name="JDBC.Driver" value="${JDBC.Driver}"/>
>              <property name="JDBC.ConnectionURL" value="$ 
> {JDBC.ConnectionURL}"/>
>              <property name="JDBC.Username" value="${JDBC.Username}"/>
>              <property name="JDBC.Password" value="${JDBC.Password}"/>
>          </dataSource>
>      </transactionManager>
>
>      <sqlMap resource="org/projectFoundry/persistence/project/
> ProjectSqlMap.xml"/>
>      <sqlMap resource="org/projectFoundry/persistence/user/
> UserSqlMap.xml"/>
>      etc.
> </sqlMapConfig>
>
> <daoConfig>
>      <context>
>
>          <transactionManager type="SQLMAP">
>              <property name="SqlMapConfigResource" value="org/ 
> projectFoundry/config/sql-map.xml"/>
>          </transactionManager>
>
>          <dao
> interface="org.projectFoundry.persistence.project.ProjectDao"
> implementation="org.projectFoundry.persistence.project.ProjectSqlMapDa
> o"
>
> />
>          <dao interface="org.projectFoundry.persistence.user.UserDao"
> implementation="org.projectFoundry.persistence.user.UserSqlMapDao"/>
>          etc.
>    </context>
> </daoConfig>
>
> Tom
>
>>
>> -----Original Message-----
>> From: Tom Duffey [mailto:tduffey@utilivisor.com]
>> Sent: woensdag 27 september 2006 7:34
>> To: user-java@ibatis.apache.org
>> Subject: lazy loading confusion
>>
>> Hi All,
>>
>> I have a Project class with a list of Members.  It is my 
>> understanding
>
>> that I can turn on lazy loading in my sql map config, define a 
>> Project
>
>> result map like:
>>
>>     <resultMap id="result" class="foo.Project">
>>          <result property="projectId" column="id"/>
>>          <result property="members" column="id"
>> select="Member.listByProject"/>
>>      </resultMap>
>>
>> and then retrieve a project and the members will not be retrieved 
>> unless I call getMembers() on the project instance.  Is this how it's

>> supposed to work?  What I'm finding is that the members list is 
>> populated even if I do not call getMembers().  To back this idea I 
>> renamed the property in the result map to "members2" and added a new
>> members2 attribute to the project class (To make sure I didn't miss 
>> any calls to getMembers) and sure enough it is still populated when I

>> retrieve the project.
>>
>> What gives?  I thought the point of lazy loading was to not load data

>> unless I ask for it.  I'm using iBATIS 2.1.7 for Java.
>>
>> Best Regards,
>>
>> Tom Duffey
>
>



Mime
View raw message