I added something, but it will really need more documentation. Paul, can you put your examples on the wiki page? http://opensource.atlassian.com/confluence/oss/display/IBATIS/Lazy+loading+issues
If anyone have additional information to put in this page, please add it. Thanks! Christian -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Larry Meadors Sent: Wednesday, 20 December 2006 11:10 To: [email protected] Subject: Re: Lazy Loading Yes, the WIKI would be a great spot for that! It's even easily updated by anyone. *hint* *hint* *nudge* *hint* :-D Larry On 12/20/06, Poitras Christian <[EMAIL PROTECTED]> wrote: > That's right. This should be written somewhere (like iBATIS wiki). > I've run into these 3 problems myself... > > Christian > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Wednesday, 20 December 2006 01:43 > To: [email protected] > Subject: RE: Lazy Loading > > Thanks Paul this was very helpfull, this kind of explanation schould be in > the manual! > > mvg, > > Wouter Roose > tel.: 02 787 54 08 > ______________________________________________________________________ > ________________________ > > SmalS-MvM sluit elke aansprakelijkheid uit in verband met de juistheid, de > volledigheid of het tijdig toekomen van de informatie in deze e-mail. Aan > deze e-mail kunnen geen rechten worden ontleend en deze e-mail houdt in geen > geval een erkenning van welkdanige aansprakelijkheid in. > Dit bericht is alleen bestemd voor de geadresseerde. Indien dit bericht niet > voor u bestemd is, verzoeken wij u dit onmiddellijk aan ons te melden en het > bericht te vernietigen. > > SmalS-MvM décline toute responsabilité quant à l'exactitude, à l'exhaustivité > et au délai de transmission des informations contenues dans cet e-mail. Aucun > droit ne peut être revendiqué sur cet e-mail et cet e-mail n'implique en > aucun cas une reconnaissance de responsabilité, quelle qu'elle soit. > Ce message s'adresse uniquement au destinataire. Si ce message ne vous est > pas destiné, nous vous prions de nous le signaler immédiatement et de > détruire le message. > > > > "MCCORMICK, Paul" > <[EMAIL PROTECTED] > oir.wa.gov.au> To > [email protected] > 20/12/2006 02:04 cc > > Subject > Please respond to RE: Lazy Loading > [EMAIL PROTECTED] > apache.org > > > > > > > > > > > You need to set enhancementEnabled="true" and have cglib in you classpath. > That will cause ibatis to use EnhancedLazyResultLoader. > > There is still some issues with 1:1 enhanced lazy loading. > > 1) If you use the <discriminator> tag to return 1:1 lazy loaded sub classes > then you will not be able to cast the returned object to the subclass. > That's because the proxy object returned is based on the method return type. > I changed EnhancedLazyResultLoader to not lazy load 1:1 abstract classes. > This reduced the effect of this issue. > > > 2) If the lazy loaded object returns no results you would expect null to be > returned. Instead a proxy object is returned and calling methods on the > proxy object will return null. This was a major problem for me. > > E.g. If ( foo.getBar() == null ) { > // Will never happen. > } > > To get over this problem I used a custom ResultObjectFactory to add a > method interceptor which would check for the above scenario and return > null if required. I can post that code if needed. If you > relationship is 1:1 this will not be an issue by my relationships were > 1 to 0 or 1 > > 3) Its harder to debug cgi enhanced objects using GUI debuggers. > > Hope this helps, > > Paul > > > > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, 19 December 2006 4:04 PM > To: [email protected] > Subject: Lazy Loading > > > Hi, > > I started using iBATIS recently and I'm trying to use the lazy loading > feature ... > according the Developer Guide it is possible to lazy load (1:1) relations, > but after testing an examining the iBATIS code I have the impression lazy > loading only works for collection properties? > > in the class LazyResultLoader: > > ==== > 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); > } > } > ==== > > mvg, > > Wouter Roose > tel.: 02 787 54 08 > ______________________________________________________________________ > ________________________ > > > SmalS-MvM sluit elke aansprakelijkheid uit in verband met de juistheid, de > volledigheid of het tijdig toekomen van de informatie in deze e-mail. Aan > deze e-mail kunnen geen rechten worden ontleend en deze e-mail houdt in geen > geval een erkenning van welkdanige aansprakelijkheid in. > Dit bericht is alleen bestemd voor de geadresseerde. Indien dit bericht niet > voor u bestemd is, verzoeken wij u dit onmiddellijk aan ons te melden en het > bericht te vernietigen. > > SmalS-MvM décline toute responsabilité quant à l'exactitude, à l'exhaustivité > et au délai de transmission des informations contenues dans cet e-mail. Aucun > droit ne peut être revendiqué sur cet e-mail et cet e-mail n'implique en > aucun cas une reconnaissance de responsabilité, quelle qu'elle soit. > Ce message s'adresse uniquement au destinataire. Si ce message ne vous est > pas destiné, nous vous prions de nous le signaler immédiatement et de > détruire le message. > > > "DISCLAIMER: This email, including any attachments, is intended only for use > by the addressee(s) and may contain confidential and/or personal information > and may also be the subject of legal privilege. If you are not the intended > recipient, you must not disclose or use the information contained in it. In > this case, please let me know by return email, delete the message permanently > from your system and destroy any copies. > > > Before you take any action based upon advice and/or information contained in > this email you should carefully consider the advice and information and > consider obtaining relevant independent advice. > > > >
