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