Eine Datenbank schön zu befragen geht zum Beispiel mit der Hibernate Criteria API unter Benutzung der Factory-Klasse Restrictions. So lässt sich beispielsweise die Anfrage für eine etwas umfangreichere Such- und Filterfunktion so zusammenbasteln:
import org.hibernate.Criteria; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; [...] List< Kunde > gefundeneKunden = sessionFactory.getCurrentSession() .createCriteria(Kunde.class) .add(Restrictions.ne("inaktiv", true)) .add(Restrictions.in("typ", search.getSelectedTypes())) .add(Restrictions.eq("geschlecht", search.getGenderFilter())) .add(Restrictions.between("datumLetzterKauf",search.getFromDate(),search.getUntilDate())) .add(Restrictions.disjunction() .add(Restrictions.like("name", "%"+search.getSearchStringName()+"%")) .add(Restrictions.like("ort", "%"+search.getSearchStringOrt()+"%")) .add(Restrictions.like("plz", "%"+search.getSearchStringPlz()+"%"))) .addOrder(Order.asc("name")); .setMaxResults(search.getMaxResults()) .list();