Once again, something I had been putting off for a long time turned out to
be much easier than expected. I spent the last two days refactoring the
fetching code + its now not only much more powerful but also more
understandable.

* one-to-many associations always fetched in a single select (rather than
two)
* many-to-many collections fetched in a single select when outerjoin
fetching enabled
* outerjoin fetching enabled upon collection elements (!!!)
* outerjoin fetching enabled for associations held by components

So, for example, if we have a list containing components which each have a
many-to-one to some entity class which in turn has a many-to-one to a class
with a component that has a many-to-one, that the whole list and all the
associated objects are fetched in a *single* select when outerjoin fetching
is enabled.

So Hibernate can now fetch an entire graph of objects in exactly n+1
selects where n is the number of collection instances in the graph.

The only thing missing from this picture is that outerjoin fetching is
still not enabled for the first level of a find() query. This will be quite
easy to implement given the machinery I've now built.

I'm feeling pretty proud of myself now..... ;)



-------------------------------------------------------
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
_______________________________________________
Hibernate-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/hibernate-devel

Reply via email to