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