【发布时间】:2019-01-23 20:29:45
【问题描述】:
我正在使用 Java Spring Boot 和 thymeleaf 构建一个 Web 应用程序。我知道如何在其中包含分页。我关注了这个链接https://dzone.com/articles/pagingandsortingrepository-how-to-use-with-thymele
现在的问题是,如何包含搜索/过滤表单以及如何在搜索结果中包含分页? 我知道我可以使用 CriteriaBuilder(如下面的 findBuildings() 函数)来获取搜索结果,但是如何在其中加入分页?
私有 EntityManager em; public List findBuildings(Building searchedBuilding) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Building> cq = cb.createQuery(Building.class);
Root<Building> quest = cq.from(Building.class);
List<Predicate> predicates = new ArrayList<Predicate>();
if (searchedBuilding.getAddress() != null) {
predicates.add(cb.equal(quest.get("Address"), "%" + searchedBuilding.getAddress()+ "%"));
}
if (searchedBuilding.getBuildingType() != null) {
predicates.add(cb.like(quest.get("BuildingType"), "%" + searchedBuilding.getBuildingType() + "%"));
}
// other predicates
cq.select(quest).where(predicates.toArray(new Predicate[] {}));
List<Building> buildings = em.createQuery(cq).getResultList();
return buildings;
}
【问题讨论】:
标签: java spring-boot criteria-api