Ivan Polák napsal(a):
myslim, ze je to velmi zvlastne, criteria mam definovane:

Criteria dateValidCriteria = session.createCriteria(ObjectA.class).
setFetchMode("loads", FetchMode.JOIN).
setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
Ja bych to napsal takto, bez toho transformeru - ten totiz bez az v pameti - nepreklada se do sql.

Criteria dateValidCriteria = session.createCriteria(ObjectA.class).
setFetchMode("loads", FetchMode.EAGER);

 Lukas


ale vysledok stale obsahuje "duplicitne" zaznamy.

Ivan

Ivan Polák  wrote / napísal(a):
bohuzial ani to, skusil som este aj toto (hladam na forum.hibernate.org), ale ani toto nepomohlo:

Criteria dateValidCriteria = session.createCriteria(ObjektA.class).setFetchMode("loads", FetchMode.JOIN);

dateValidCriteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).createCriteria("loads").add(disjunction);

Ivan


Josef Adamčík  wrote / napísal(a):
zkuste:
dateValidCriteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).createCriteria("loads").add(disjunction);

2008/3/23 Ivan Polák <[EMAIL PROTECTED]>:
toto nepomohlo :

 Criteria dateValidCriteria = session.createCriteria(ObjektA.class);

dateValidCriteria.createCriteria("loads").add(disjunction).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

 Ivan

 Richard Malaschitz  wrote / napísal(a):


crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
 >
 > Dňa 23.3.2008, Ivan Polák <[EMAIL PROTECTED]> napísal(a):
 >
 >> este doplnim otazku. zvladol som vnorene criteria objekty. mam
 >>  nasledovnu situaciu:
 >>
 >>  prvy objekt A "ma" 3 load objekty.
 >>  druhy objekt A "ma" 2 load objekty.
 >>  treti objekt A "ma" 1 load objekt.
 >>
>> a vypis je nasledovny - teda obsahuje duplicitne polozky, pricom objekt >> A by tam mal byt iba raz a nie 3x (nakolko obsahuje 3 load objekty):
 >>
 >>  prvy objektA - load1
 >>  prvy objektA - load2
 >>  prvy objektA- load3
 >>  prvy objektA - load1
 >>  prvy objektA - load2
 >>  prvy objektA- load3
 >>  prvy objektA - load1
 >>  prvy objektA - load2
 >>  prvy objektA- load3
 >>  druhy objektA- load1
 >>  druhy objektA - load2
 >>  druhy objektA - load1
 >>  druhy objektA - load2
 >>  treti objektA - load1
 >>  treti objektA - load2
 >>
 >>  podla mna asi chyba definovanie INNER_JOIN, teda:
 >>  CriteriaSpecification.INNER_JOIN ?
 >>
 >>  dakujem
 >>
 >>  Ivan
 >>
 >>
 >>
 >>  Ivan Polák  wrote / napísal(a):
 >>
 >>
 >>> dakujem, toto som v dokumentacii nejako prehliadol :-(. dakujem
 >>>
 >>  >
 >>  > Ivan
 >>  >
 >>  > Josef Adamčík wrote / napísal(a):
>> >> Trik je v tom, ze se vytvori vnoreny criteria objekt. Tedy treba:
 >>  >> session.createCriteria(A.class)
 >>  >>    .(... pripadne restrikce a dalsi modifikatory pro A)
 >>  >>       .createCriteria("loads").
>> >> . (... restrikce a modifikatory pro objekty z kolekce "loads")
 >>  >>
>> >> Dalsi moznosti je pouzit .createAlias(..) Obe moznosti jsou popsany zde: >> >> http://www.hibernate.org/hib_docs/reference/en/html/querycriteria.html#querycriteria-associations
 >>  >>
 >>  >>
 >>  >>
 >>  >> 2008/3/22 Ivan Polák <[EMAIL PROTECTED]>:
 >>  >>
 >>  >>> Ahojte,
 >>  >>>
>> >>> potreboval by som pomoct s definovanim hibernate criteria pre
 >>  >>> nasledovnu
 >>  >>>  situaciu.
 >>  >>>
 >>  >>>  mam objekt A, ktory ma :
 >>  >>>
>> >>> @OneToMany(mappedBy = "...", fetch = FetchType.LAZY, cascade =
 >>  >>>  CascadeType.ALL)
 >>  >>>     @JoinColumn(name = "owner_id")
 >>  >>>     private List<Load> loads;
 >>  >>>
>> >>> objekt Load ma 2 vlastnosti - platnost od a platnost do. teda objekt A
 >>  >>>  ma list objektov typu Load.
 >>  >>>
 >>  >>>  ako mam napisat criteria pre vyhladavanie, ked vyhladavacie
 >>  >>> kriteria su
 >>  >>>  datum-od, datum do, ak chcem prehladavat objekty A, ale tato
 >>  >>> podmienka s
>> >>> datumami sa vztahuje na objekty loads, teda aby sa pozrelo postupne na >> >>> vsetky objekty A co mam v DB a pre kazdy objekt sa pozrelo na vsetky >> >>> objekty loads typu Load, ktore k nemu patria, a vypisalo len take >> >>> objekty A, ktory ma aspon jeden objekt v loads, ktory splna podmienku. >> >>> neide mi o to, ako napisat criteria pre datumovu podmienku, ide mi
 >>  >>> o to,
>> >>> ako prehladavat nejake pole objektov patriace k "hlavnym" objektom
 >>  >>> ktore
>> >>> prehladavam. dufam ze som to aspon trocha zrozumitelne popisal.
 >>  >>>
 >>  >>>  velmi pekne dakujem
 >>  >>>
 >>  >>>  Ivan
 >>  >>>
 >>  >>>
 >>  >>
 >>  >>
 >>  >>
 >>  >
 >>  >
 >>  >
 >>
 >>
 >>








Odpovedet emailem