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
>
>
>
>






Odpovedet emailem