predsa mam este k tomuto rieseniu jednu otazku. teraz ak "ma" objektA
napr. 10 objektov load, tak sa vypisu vsetky objekty load, nie len ten
co splnaju podmienku definovanu v subquery
(Restrictions.le("l.validFrom",fromDate). ako je potrebne zmenit
podmienku tak, aby sa nevypisovali vsetky obje
velmi pekne dakujem za Vasu pomoc. funguje to presne tak ako ste napisal.
dakujem!
Ivan
Lukas Barton wrote / napísal(a):
Udelejte to zhruba takto:
DetachedCriteria subquery =
DetachedCriteria.forClass(Load.class, "l");
subquery.add( Restrictions.eqProperty("l.objectA.id", "a.id"))
.add(Res
Udelejte to zhruba takto:
DetachedCriteria subquery =
DetachedCriteria.forClass(Load.class, "l");
subquery.add( Restrictions.eqProperty("l.objectA.id", "a.id"))
.add(Restrictions.le("l.validFrom",fromDate)
.setProjection( Property.forName("l.id"));
Criteria criteria = session.createCriteria
toto je v poriadku:
Criteria dateValidCriteria = session.createCriteria(ObjectA.class).
setFetchMode("loads", FetchMode.SELECT).
setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
ale ked tam pridam subqueries (podmienka na as
dakujem, dakujem, dakujem, to je ono.
velka vdaka.
Ivan
Lukas Barton wrote / napísal(a):
Prominte, mam v tom chybu, prohodil jsem si konstanty (dobre ze uz
EAGER deprekovali a misto neho je jasnejsi JOIN).
Dejte tam FetchMode.SELECT.
Jinak pro podminky na asociacovane objekty musite pouziva
Prominte, mam v tom chybu, prohodil jsem si konstanty (dobre ze uz EAGER
deprekovali a misto neho je jasnejsi JOIN).
Dejte tam FetchMode.SELECT.
Jinak pro podminky na asociacovane objekty musite pouzivat Subqueries.
Ale je v tom hodne bugu a moc to nefunguje -
http://opensource.atlassian.com/pr
nepomohlo ani to, nie je nejaky problem v anotaciach ?
objektA obsahuje:
@OneToMany(mappedBy = "objectA", fetch = FetchType.LAZY, cascade =
CascadeType.ALL)
@JoinColumn(name = "owner_id")
private List loads;
a objekt Load:
@ManyToOne (fetch = FetchType.LAZY)
@JoinColumn(name = "owne
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 tot
myslim, ze je to velmi zvlastne, criteria mam definovane:
Criteria dateValidCriteria = session.createCriteria(ObjectA.class).
setFetchMode("loads", FetchMode.JOIN).
setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
ale vysledok stale obsahuje "duplicitne" zaznamy.
Ivan
Ivan Polák wrote / n
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("loa
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("lo
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_EN
Kam sahaji moje vedomosti, tak INNER_JOIN asi nebude to prave.
Kazdopadne tento problem lze vyresit pridanim
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
k zakladnimu criteria objektu.
2008/3/23 Ivan Polák <[EMAIL PROTECTED]>:
> este doplnim otazku. zvladol som vnorene criteria objekty. ma
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 objek
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 3
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").
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(..) O
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 loads;
objekt Load ma 2 vlastnosti - platnos
18 matches
Mail list logo