We had exactly the same issue, calling a method from within the constructor triggers "lazy" loading, which obviously isn't very lazy anymore.
We ended up adding enhancer.setInterceptDuringConstruction(false) where an Enhancer-object is constructed (2 times in EnhancedLazyResultLoader). This could however cause problems when you are accessing uninitialized variables (not loaded from DB), but we're fine with that. HTH, Niels -----Original Message----- From: Paul Benedict [mailto:[EMAIL PROTECTED] On Behalf Of Paul Benedict Sent: dinsdag 23 januari 2007 5:05 To: User Ibatis Subject: Odd behavior with CGLIB Can someone tell me if this is a bug in iBATIS: I turned on lazy loading of a class. In the constructor of the object, I called a protected method to initialize some properties. Example: public MyClassConstructor() { setId(-1); } Because I called a method, iBATIS marked this class has "loaded" but it was never really loaded. Only by replacing setId(-1) with this.id = -1; was I able to prevent the "loaded" variable from being immediately set. I believe there is some sort of sequencing error here. The class should not be considered initialized until after the constructor returns. Thoughts? Paul