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