AFAIK the root of the problem is that when iBatis handles resultset of left
joining master table with child table the child table columns may be all
NULL and it's not quite clear whether child table indeed contained
corresponding row with NULL elements or there was no result found in the
child table. Hence it adds a single element (with NULL values) to the list.
So i think it's not lazy loading issue at all.

Hence in such situations I add a check in my DAO layer and discard the child
list if it contains single element with all NULL values. Wish iBatis could
handle this for me through, say, some boolean flag 'discardNullChildLists'.



2008/8/12 Haulyn R. Jason <[EMAIL PROTECTED]>

> Hi,
> I use the feature Lazy loading for IBatis2.3, I have a domain class like:
> public class Role(){
> private String id;
> private String name ;
> private List<Privilege> privilegeList ;
> }
>
> the problem is:
> when the privilegeList is not null, I mean a Role object has more than
> one Privilege, ok, everything goes well.
> But when the Role doesn't has any Privilege, I hope my Dao could return
> null for the property privilegeList. When I debug my program, I found
> it's stranger, the privilegeList is not null, it is a List with one
> element, the only one element is Privilege Object but doesn't have values.
>
> I try to google the issue and find this:
>
> http://opensource.atlassian.com/confluence/oss/display/IBATIS/Lazy+loading+issues
> but I really can not understand how can I achieve my goal.
>
> Always thanks for solution or some urls reference.
>
> --
>
> Thanks!
>
> Mobile: +086-15864011231
> EMail&gtalk:[EMAIL PROTECTED] <[EMAIL PROTECTED]>
> EMail&yahoo:[EMAIL PROTECTED] <[EMAIL PROTECTED]>
> Skype:saharabear
>
>
> 贾昊林(Haulyn Runner Jason)
>
>

Reply via email to