[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-544?page=co...
] 
Dan Allen commented on HHH-544:
-------------------------------
Would it be reasonable to request some way to add a hint that forces an eager load?
As a particular use case, I needed to query for a set of associated entities and their
frequency within a table.
select q, count(*) from Queue q group by q
So to make things pretty and object oriented, I made a QueueFrequency object
select new QueueFrequency(q, count(*)) from Queue q group by q
The result set List<QueueFrequency> is then passed on to some other area of the code
and does calculations on those queues and their frequencies. As soon as that code touches
the queue in one of the QueueFrequency instances, it triggers a select (eventually leading
to n+1)
As a workaround, I just ran the first query, and then iterated over its results to
generate the QueueFrequency objects, and then returned the List<QueueFrequency>
result. It just seems lame not to be able to push this work into the session manager.
 select new ... results in n+1 selects
 -------------------------------------
                 Key: HHH-544
                 URL: 
http://opensource.atlassian.com/projects/hibernate/browse/HHH-544
             Project: Hibernate3
          Issue Type: Improvement
          Components: core
    Affects Versions: 3.0.5
         Environment: Hibernate 3.0.5, Oracle 8i, JDK 1.4.2
            Reporter: Salvatore Insalaco
            Priority: Minor
 Using collection constructors in select clause of HQL (e.g. new map(...)) generates n + 1
SQL statements (one for primary keys, one for each object).
 This is a problem when there're clauses as "distinct" and "order
by":
 select distinct o from MyEntity o order by o.description
 works, because in the generated SQL all the columns are mapped in the select clause;
but:
 select distinct new map (o as result) from MyEntity o order by o.description
 doesn't work, because the first line of generated SQL is like:
 select distinct id from MyTable order by description
 and that's invalid sql (at least in Oracle): description shoud be placed in select
clause. 
-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see: 
http://www.atlassian.com/software/jira