I have a property on a domain object that is declared in a many-to-one element. The basic syntax of this property looks like this:
<many-to-one name="propertyName" class="propertyClass" fetch="select" not-found="ignore" lazy="proxy" />
Now, the idea is to have Hibernate NOT eagerly fetch this property. It may be null, so the not-found ignore is set.
But, Hibernate, upon loading the class containing this association, takes it upon itself to load the actual class (not even a proxy) instance when the parent class is loaded. Since some properties are over 1MB in size, they take up a lot of the heap space.
If, however, not-found is set to exception (or defaulted to exception), the parent classes which have this property do load a proxy!
How can I stop hibernate from not loading a proxy, while still allowing this property to be null?
I found lazy=no-proxy, but the documentation talks about some sort of bytecode modification and doesn't go into any details. Can someone help me out?
If it matters, it is the Java version of Hibernate, and it is at least version 3 (I can look up the actual version if it helps, but it is Hibernate 3+ for now).
I didn't specify earlier, but the Java version is 1.4. So, Java annotations aren't supported.