In my private chats with people, it seems we all agree that
currently, Hibernate2 association fetch strategy configuration
is confusing and has nonsensible defaults. I've spent quite a
lot of time thinking about how we could clean this up without
breaking 2.x mapping documents too much, and come to the
conclusion that this would be the best approach:

(1) make lazy default to true on both <class> and <collection>
   mapping elements; if a class cannot be proxied, laziness
   is transparently disabled; make it clear that we intend
   laziness to be used 99% of the time

(2) provide <hibernate-mapping default-lazy="false">, to
   override this new default for backward compatibility
   purposes

(3) deprecate (remove?) the confusingly named outer-join
   attribute

(4) introduce the fetch attribute, where, at least initially,
   the options are fetch="join|select"; eventually we may
   add other options like fetch="immediate-select"

Questions:

* The default should be fetch="select" for collections, what
 should the default be for to-one associations? I suppose
 that purely for backward compatibility purposes we need
 fetch="auto|join|select", where auto is the default, and
 chooses "select" for a lazy-enabled class.

* Should we provide XSLT stylesheets to transform 2.x mapping
 to 3.0 mappings, rather than providing backward compatibility
 at the mapping document level, by adding default-lazy and
 continuing to support the outer-join attribute?

* Anything else needed?

* Does this suck?




-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM. Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
hibernate-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/hibernate-devel

Reply via email to