Díky za nápad, ale tímhle to opravdu není. Problém není v SQL query, ale o vrstvu vý¹e, která z výsledkù dìlá entity. Jak u¾ jsem psal SQL správnì vrátí 2 øádky, ve kterých je stejné Order.id a rùzné OrderState.id. Z tohodle se bohu¾el vytvoøí jedna instance Order která se *dvakrát* vlo¾í do Order.items.
Honza -- Jan Bares http://jan.vegetband.cz "Jiri Frydek" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] Zdravim, proc vyuzivate INNER JOIN FETCH. Nestacil by LEFT JOIN FETCH? To by melo Vas problem vyresit. JF Cituji jan_bar <[EMAIL PROTECTED]>: > Zdravím, > > mám EJB3 entitu Order, která má 1:N vztah na Item (je to List) a té¾ 1:N na > OrderState (je to Set, stav ve kterém se nachází Order). Oba vztahy jsou > lazy loaded. Chci jedním EJB QL natáhnout Order vèetnì v¹ech Items a > OrderStates: > "SELECT DISTINCT o FROM Order o" + > " INNER JOIN FETCH o.orderEvents e" + > " INNER JOIN FETCH o.items i" + > " WHERE o.id = 98305" > > Order 98305 má jeden Item a dvì OrderEvents. Výsledný Order.items ale > obsahuje 2x stejnou instanci Item. Je to zøejmì proto, ¾e SQL vrátí dva > øádky, ka¾dý pro jeden OrderEvent a ORM mi z toho udìlá té¾ dvì (stejné) > polo¾ky v seznamu items. Mo¾ná by problém vyøe¹ilo pou¾ít Set místo List na > items, ale to nechci (items jsou øazeny podle èísla). > > Snad jsem problém popsal dostateènì. Nevím zda je toto vlastnost EJB3 ORM a > nevím jak to elegantnì vyøe¹it. > > (JBoss 4.2.GA) > > Díky, Honza > > -- > Jan Bares > http://jan.vegetband.cz > > > >
