So it sounds like there are a couple options ... 1. alter our hibernate mappings to for lazy="false" by default. this would require upgrading our xdoclet version.
2. alter our pojos to force the use of getters/setters and prevent the use of direct accessors. personally, i think we should do both, but i would be more adamant about doing #2. the standard pojo/bean pattern recommends that attributes be private and only accessed through getters and setters and i believe we should adhere to that. it seems pretty lame that hibernate couldn't deal with direct access, but oh well. with a bit of IDE wizardry it shouldn't be too hard to make this happen. of course it also makes sense that we probably don't need to use lazy loading on *all* pojo properties, so defaulting to lazy="false" would be a good thing too. i don't know all the details about why that was changed in hibernate 3, maybe there is a good reason to use lazy loading all the time? maybe this would account for the performance improvements you noted on your site Dave? what does everyone else prefer to do? -- Allen On Wed, 2005-11-02 at 06:17, Dave Johnson wrote: > On Nov 2, 2005, at 7:44 AM, Dave Johnson wrote: > >> Anil wrote: > >> Changing the loading behavior in the mappings to be non-lazy one > >> should be able to avoid this behavior. If we have a lot of code > >> dealing with pojo members directly, we may want to do this. I > >> believe the laziness defaults changed between 2.x and 3.x. > > > > The more involved fix is to upgrade to the latest XDoclet (which may > > require building it from CVS to get around that bug that bit me), set > > lazy="false" at the class level and set lazy="true" for the individual > > collections that we want to be lazy-loaded (and I think we're already > > doing that). We're using XDoclet 1.2b4 and the latest XDoclet is 1.2. > > I've implemented that more involved fix in my workspace. I upgraded to > XDoclet 1.2.3, found a reasonable work-around for that bug I mentioned > and set lazy="false" at the @hibernate.class level for all 28 of our > POJOS. Roller appears to be working fine in my workspace. > > There are three reasons why we might want to commit this for 2.0: > 1) it solves the intermittent null problem (we need to verify this) > 2) it's better to use an official release of XDoclet rather than custom > 1.2b4 build > 3) it's better to stick with lazy="false" since that's what we were > doing before 2.0 > > Since I can't duplicate the intermittent null problem, Allen needs to > verify that #1 is a true statement. > > - Dave >
