Niektóre serwisy w przypadku zaawansowanego wyszukiwania wykorzystują zdefiniowane filtry, za pomocą których możemy określić kryteria wyszukiwania.
Przydatne klasy:
- HibernateFilter - interfejs udostępniający metodę buildCriterion(), która zwraca odpowiednio zbudowane kryterium.
- SimpleHibernateFilter - implementacja HibernateFilter, dająca możliwość definiowania kryteriów wyszukiwania.
- GroupHibernateFilter - implementacja HibernateFilter, umożliwiająca grupowanie filtrów za pomocą operatorów logicznych AND i OR.
Przykład z jednym filtrem
SimpleHibernateFilter filter = new SimpleHibernateFilter( "userName", "jkowalski" ); //użytkownik o loginie "jkowalski" //LUB SimpleHibernateFilter filter = new SimpleHibernateFilter( "userName", "jkowalski", FilterOperator.NOTEQ ); //użytkownicy, poza użytkownikiem o loginie "jkowalski"
W pierwszym filtrze nie zdefiniowaliśmy operatora, dlatego uwzględniany jest domyślny operator EQ. Filtr ten ogranicza wyszukiwanie do użytkownika o loginie "jkowalski". Drugi filtr nadaje ograniczenie na użytkowników poza użytkownikiem o loginie "jkowalski". Świadczy o tym operator NOTEQ.
Przykład z grupowaniem filtrów