Formatted code
public List<SomeBean> search(SearchForm searchForm) {
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<SomeBean> cq = cb.createQuery(SomeBean.class );
Root<SomeBean> root = cq.from(SomeBean.class );
Set<Predicate> criteria = new HashSet<>(8);
Cycle cycle = currentCycleService.getCurrentCycle();
Predicate cyclePredicate = cb.equal(root.get("cycle"), cycle);
LOG.info("Search form stuff \n{}:", searchForm);
criteria.add(cyclePredicate);
String keywords = searchForm.getKeywords();
if (keywords != null && !keywords.isEmpty()) {
LOG.info("Adding criterion keywords : {}", keywords);
String keywordsSQL = ' % ' + keywords + ' % ';
Predicate beanNameLike = cb.like(root.get("name"), keywordsSQL);
Predicate beanFamilyLike = cb.like(root.get("family").get("name"), keywordsSQL);
Predicate emailLike = cb.like(root.get("email"), keywordsSQL);
Predicate allKeywordPreds = cb.or(beanNameLike, beanFamilyLike, emailLike);
criteria.add(allKeywordPreds);
}
Set<Integer> beanSpecialIds = searchForm.getBeanSpecialSet();
if (beanSpecialIds != null && !beanSpecialIds.isEmpty()) {
criteria.add(root.get("beanSpecial").get("id").in(beanSpecialIds));
}
Set<Integer> beanTypeSet = searchForm.getBeanTypeSet();
if (beanTypeSet != null && !beanTypeSet.isEmpty()) {
criteria.add(root.get("beanType").get("id").in(beanTypeSet));
}
Predicate finalPredicate = cb.and(criteria.toArray(new Predicate[0] ));
cq = cq.where(finalPredicate);
TypedQuery<SomeBean> x = entityManager.createQuery(cq);
x.setMaxResults(25);
List<SomeBean> finalBeanList = x.getResultList();
return finalBeanList;
}