Hi,
ich versuche eine SQL-Query so umzubauen, das ich die Criteria-API von Hibernate dazu benutzen kann. Mein Problem ist,das ich irgendwie keine mehrfachen Or-Querys hinbekomme. Geht das überhaupt?
Hier der SQl-Query:
und hier mein Criteria-Versuch, der leider so nicht funktioniert:
(Entschuldigt die Formatierung, aber ich hab den Code aus Eclipse kopiert und da sieht er vernünftig aus.)
Folgender Code mit nur 2 -Or-Verknüpfungen funktioniert, löst aber nicht mein Problem:
Vielleicht wißt ihr ja eine Lösung, bzw. würdet ihr überhaupt mit der Criteria-API arbeiten oder doch lieber mit HQL/SQL? Benutzt wird das Ganze übrigens für eine Suchmaske!
Grüße,
Peter
ich versuche eine SQL-Query so umzubauen, das ich die Criteria-API von Hibernate dazu benutzen kann. Mein Problem ist,das ich irgendwie keine mehrfachen Or-Querys hinbekomme. Geht das überhaupt?
Hier der SQl-Query:
Code:
createSQLQuery("Select {privateAddresses.*} from private_addresses {privateAddresses} " +
"where affiliate_id = "+id.intValue()+
" and (name like '"+search+"' " +
" or city like '"+ search+"' " +
" or street like '"+ search+"' " +
" or email like '"+ search+"' " +
" or url like '"+ search+"' " +
" or zipcode like '"+search+ "')" ).addEntity("privateAddresses",PrivateAddresses.class).list();
und hier mein Criteria-Versuch, der leider so nicht funktioniert:
Code:
DetachedCriteria crit = DetachedCriteria.forClass(PrivateAddresses.class);
crit.add(Restrictions.and(Restrictions.eq("affiliateId", id.intValue()),
Restrictions.or(
Restrictions.like("name", search),
Restrictions.like("street", search),
Restrictions.like("email", search),
Restrictions.like("url", search),
Restrictions.like("zipcode", search),
Restrictions.like("city", search)
)
)
);
(Entschuldigt die Formatierung, aber ich hab den Code aus Eclipse kopiert und da sieht er vernünftig aus.)
Folgender Code mit nur 2 -Or-Verknüpfungen funktioniert, löst aber nicht mein Problem:
Code:
crit.add(Restrictions.and(Restrictions.eq("affiliateId", id.intValue()),
Restrictions.or(
Restrictions.like("name", search),
Restrictions.like("street", search)
)
)
);
Vielleicht wißt ihr ja eine Lösung, bzw. würdet ihr überhaupt mit der Criteria-API arbeiten oder doch lieber mit HQL/SQL? Benutzt wird das Ganze übrigens für eine Suchmaske!
Grüße,
Peter