How to use Criteria build search and pagination with pageable

53 views Asked by At

I try to use criteria and pageable to pagination

@Autowired
  private EntityManager entityManager;
    public List<Order> searchOrderByNameItem(String keyword, int startPosition, int pageSize) {
        CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
        CriteriaQuery<Order> criteriaQuery = criteriaBuilder.createQuery(Order.class);
        Root<Order> orderRoot = criteriaQuery.from(Order.class);
        Join<Order, Item> itemJoin = orderRoot.join("items", JoinType.INNER);
        Predicate likePredicate = criteriaBuilder.like(itemJoin.get("name"), "%" + keyword + "%");
        criteriaQuery.where(likePredicate);
        TypedQuery<Order> typedQuery = entityManager.createQuery(criteriaQuery);
        typedQuery.setFirstResult(startPosition-1);
        typedQuery.setMaxResults(pageSize);
        return typedQuery.getResultList();
    }

This is my code use typedQuery but I want to use pageable

0

There are 0 answers