Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
titlePrzykład z grupowaniem filtrów
linenumberstrue
//Tworzymy grupę warunków połączonych operatorem logicznym OR
GroupHibernateFilter groupFilter = new GroupHibernateFilter();
groupFilter.setLogicOperator( LogicOperator.OR );
 
SimpleHibernateFilter filter1 = new SimpleHibernateFilter( "userName", "j%", FilterOperator.LIKE );
groupFilter.addFilter(filter1);
SimpleHibernateFilter filter2 = new SimpleHibernateFilter( "firstName", "j%", FilterOperator.LIKE );
groupFilter.addFilter(filter2);
SimpleHibernateFilter filter3 = new SimpleHibernateFilter( "lastName", "j%", FilterOperator.LIKE );
groupFilter.addFilter(filter3);

Powyższy przykład prezentuje filtry połączone warunkiem logicznym OR. Tak skonstruowany filtr wyszuka użytkowników których login lub imię lub nazwisko zaczynają się na literę "j".

 

Code Block
titlePrzykład złożonego grupowania filtrów
//Tworzymy grupę warunków połączonych operatorem logicznym OR
GroupHibernateFilter mainGroupFilter = new GroupHibernateFilter();
mainGroupFilter.setLogicOperator( LogicOperator.OR );

//Tworzymy grupę warunków połączonych operatorem logicznym AND
GroupHibernateFilter subGroupFilter = new GroupHibernateFilter();
subGroupFilter1.setLogicOperator( LogicOperator.AND );


SimpleHibernateFilter filter1 = new SimpleHibernateFilter( "userName", "j%", FilterOperator.LIKE );
subGroupFilter.addFilter(filter1);
SimpleHibernateFilter filter2 = new SimpleHibernateFilter( "firstName", "k%", FilterOperator.LIKE );
subGroupFilter.addFilter(filter2);


//Tworzymy grupę warunków połączonych operatorem logicznym AND (jeżeli nie zdefiniujemy operatora to domyślnie jest nim AND)
SimpleHibernateFilter filter3 = new SimpleHibernateFilter( "userName", "jkowalski" );
subGroupFilter2.addFilter(filter3);

mainGroupFilter.addFilter( subGroupFilter );
mainGroupFilter.addFilter( filter3 );

W powyższym przykładzie został zdefiniowany złożony filtr grupowy. Wynikiem takiej implementacji będzie następujący warunek:

Code Block
languagesql
 ( ( userName like "j%" AND firstName like "k% ) OR userName = "jkowalski" )