Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Page buscaContendoCategoria(Pageable pageable, List categorias){
- final List orPredicates = new ArrayList();
- CriteriaBuilder criteriaBuilder = this.entityManager.getCriteriaBuilder();
- CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(Noticia.class);
- Root noticia = criteriaQuery.from(Noticia.class);
- List predicates = new ArrayList<>();
- for(Categoria categoria : categorias){
- orPredicates.add(criteriaBuilder.isMember(categoria , noticia.get("categorias")));
- }
- predicates.add(criteriaBuilder.or(orPredicates.toArray(new Predicate[orPredicates.size()])));
- criteriaQuery.where(predicates.toArray(new Predicate[0]));
- criteriaQuery.orderBy(QueryUtils.toOrders(pageable.getSort(), noticia, criteriaBuilder));
- TypedQuery query = entityManager.createQuery(criteriaQuery);
- int totalRows = query.getResultList().size();
- query.setFirstResult(pageable.getPageNumber() * pageable.getPageSize());
- query.setMaxResults(pageable.getPageSize());
- Page result = new PageImpl(query.getResultList(), pageable, totalRows);
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement