OR mezi dvema svazanimi entitami a Criteria
Zdravim vsechny. Mam nasledujici entity kde Entita2 obsahuje dve reference na Entitu1 spojenou pres id. Entita1 { Long id; String text; } Entita2 { Long id; String text; Entita1 entA; Entita1 entB; } Chtel bych vytvorit dotaz pomoci kriterii, ktery by mel za cil nacist Entity2 podle podminky napr: text = '?' and (entA.text = ? or entB.text = ?) Jde mi o to, ze se mi nedari prijit na to jak pomoci kriterii vytvorit ten OR mezi hodnotou textu entA a hodnotou textu entB. Dekuji Jaroslav Hurdes
Re: OR mezi dvema svazanimi entitami a Criteria
mozno som to nepochopil, ale nie je to obycajny or? crit.add(Restrictions.or( Restrictions.eq(entA.text, "bl"), Restrictions.eq(entB.text, "bl"))); +asi pozrite v dokumentacii ako sa robia aliasy, ak chcete "nested" properties metoda createAlias v Criteria, ak sa dobre pamatam. s pozdravom CoPLaS Jaroslav Hurdes wrote / napísal(a): Zdravim vsechny. Mam nasledujici entity kde Entita2 obsahuje dve reference na Entitu1 spojenou pres id. Entita1 { Long id; String text; } Entita2 { Long id; String text; Entita1 entA; Entita1 entB; } Chtel bych vytvorit dotaz pomoci kriterii, ktery by mel za cil nacist Entity2 podle podminky napr: text = '?' and (entA.text = ? or entB.text = ?) Jde mi o to, ze se mi nedari prijit na to jak pomoci kriterii vytvorit ten OR mezi hodnotou textu entA a hodnotou textu entB. Dekuji Jaroslav Hurdes
Re: OR mezi dvema svazanimi entitami a Criteria
chybaju mi tam niekde uvodzovky, tak sa necudujte :) pisal som to z hlavy. sorry CoPLaS Pavel (Michal) Pavlasek wrote / napísal(a): mozno som to nepochopil, ale nie je to obycajny or? crit.add(Restrictions.or( Restrictions.eq(entA.text, "bl"), Restrictions.eq(entB.text, "bl"))); +asi pozrite v dokumentacii ako sa robia aliasy, ak chcete "nested" properties metoda createAlias v Criteria, ak sa dobre pamatam. s pozdravom CoPLaS Jaroslav Hurdes wrote / napísal(a): Zdravim vsechny. Mam nasledujici entity kde Entita2 obsahuje dve reference na Entitu1 spojenou pres id. Entita1 { Long id; String text; } Entita2 { Long id; String text; Entita1 entA; Entita1 entB; } Chtel bych vytvorit dotaz pomoci kriterii, ktery by mel za cil nacist Entity2 podle podminky napr: text = '?' and (entA.text = ? or entB.text = ?) Jde mi o to, ze se mi nedari prijit na to jak pomoci kriterii vytvorit ten OR mezi hodnotou textu entA a hodnotou textu entB. Dekuji Jaroslav Hurdes
Re: OR mezi dvema svazanimi entitami a Criteria
Bohuzel toto mi nefunguje a vyhodi mi vyjimku: org.hibernate.QueryException: could not resolve property: entA.text of: Entita2 property je namapovana jako: Jaroslav Hurdes Pavel (Michal) Pavlasek napsal(a): mozno som to nepochopil, ale nie je to obycajny or? crit.add(Restrictions.or( Restrictions.eq(entA.text, "bl"), Restrictions.eq(entB.text, "bl"))); +asi pozrite v dokumentacii ako sa robia aliasy, ak chcete "nested" properties metoda createAlias v Criteria, ak sa dobre pamatam. s pozdravom CoPLaS Jaroslav Hurdes wrote / napísal(a): Zdravim vsechny. Mam nasledujici entity kde Entita2 obsahuje dve reference na Entitu1 spojenou pres id. Entita1 { Long id; String text; } Entita2 { Long id; String text; Entita1 entA; Entita1 entB; } Chtel bych vytvorit dotaz pomoci kriterii, ktery by mel za cil nacist Entity2 podle podminky napr: text = '?' and (entA.text = ? or entB.text = ?) Jde mi o to, ze se mi nedari prijit na to jak pomoci kriterii vytvorit ten OR mezi hodnotou textu entA a hodnotou textu entB. Dekuji Jaroslav Hurdes
Re: OR mezi dvema svazanimi entitami a Criteria
skuste prave tie aliasy pozret. to je podla mna to co potrebujete. List cats = sess.createCriteria(Cat.class) .createAlias("kittens", "kt") .createAlias("mate", "mt") .add( Restrictions.eqProperty("kt.name", "mt.name") ) .list(); dokumentacia nie je zla vec ;) http://www.hibernate.org/hib_docs/reference/en/html/querycriteria.html CoPLaS Jaroslav Hurdes wrote / napísal(a): Bohuzel toto mi nefunguje a vyhodi mi vyjimku: org.hibernate.QueryException: could not resolve property: entA.text of: Entita2 property je namapovana jako: Jaroslav Hurdes Pavel (Michal) Pavlasek napsal(a): mozno som to nepochopil, ale nie je to obycajny or? crit.add(Restrictions.or( Restrictions.eq(entA.text, "bl"), Restrictions.eq(entB.text, "bl"))); +asi pozrite v dokumentacii ako sa robia aliasy, ak chcete "nested" properties metoda createAlias v Criteria, ak sa dobre pamatam. s pozdravom CoPLaS Jaroslav Hurdes wrote / napísal(a): Zdravim vsechny. Mam nasledujici entity kde Entita2 obsahuje dve reference na Entitu1 spojenou pres id. Entita1 { Long id; String text; } Entita2 { Long id; String text; Entita1 entA; Entita1 entB; } Chtel bych vytvorit dotaz pomoci kriterii, ktery by mel za cil nacist Entity2 podle podminky napr: text = '?' and (entA.text = ? or entB.text = ?) Jde mi o to, ze se mi nedari prijit na to jak pomoci kriterii vytvorit ten OR mezi hodnotou textu entA a hodnotou textu entB. Dekuji Jaroslav Hurdes
Re: OR mezi dvema svazanimi entitami a Criteria
Diky, toto je reseni: Criteria c = getSession().createCriteria("Ent2"); c.add(Restrictions.eq("text", ?)); c.createAlias("entA", "eA"); c.createAlias("entB", "eB"); c.add(Restrictions.or(Restrictions.ilike("eA.text", ?), Restrictions.ilike("eB.text", ?))); Jaroslav Hurdes Pavel (Michal) Pavlasek napsal(a): skuste prave tie aliasy pozret. to je podla mna to co potrebujete. List cats = sess.createCriteria(Cat.class) .createAlias("kittens", "kt") .createAlias("mate", "mt") .add( Restrictions.eqProperty("kt.name", "mt.name") ) .list(); dokumentacia nie je zla vec ;) http://www.hibernate.org/hib_docs/reference/en/html/querycriteria.html CoPLaS Jaroslav Hurdes wrote / napísal(a): Bohuzel toto mi nefunguje a vyhodi mi vyjimku: org.hibernate.QueryException: could not resolve property: entA.text of: Entita2 property je namapovana jako: Jaroslav Hurdes Pavel (Michal) Pavlasek napsal(a): mozno som to nepochopil, ale nie je to obycajny or? crit.add(Restrictions.or( Restrictions.eq(entA.text, "bl"), Restrictions.eq(entB.text, "bl"))); +asi pozrite v dokumentacii ako sa robia aliasy, ak chcete "nested" properties metoda createAlias v Criteria, ak sa dobre pamatam. s pozdravom CoPLaS Jaroslav Hurdes wrote / napísal(a): Zdravim vsechny. Mam nasledujici entity kde Entita2 obsahuje dve reference na Entitu1 spojenou pres id. Entita1 { Long id; String text; } Entita2 { Long id; String text; Entita1 entA; Entita1 entB; } Chtel bych vytvorit dotaz pomoci kriterii, ktery by mel za cil nacist Entity2 podle podminky napr: text = '?' and (entA.text = ? or entB.text = ?) Jde mi o to, ze se mi nedari prijit na to jak pomoci kriterii vytvorit ten OR mezi hodnotou textu entA a hodnotou textu entB. Dekuji Jaroslav Hurdes