HQL is a little more flexible than Criteria, but, ultimately, the options you give are irrelevant in relation to performance.
Your HQL using inner or outer joins should depend on the business needs of your application, rather than on performance considerations.
For example, when you need a parent present in a resultset even when there are no children, you use an outer join.
A much better way to tune the performance of your queries is to focus on their fetching strategy, both in terms of what kind of fetching you do (join, subselect) and when you do it (eager, lazy).
_________________ Gonzalo Díaz
|