我想做这个查询
select * from order_config
where group_id like '%PATH%'
order by (group_id = 'PATH') desc
我有这个jparerepository,我想传递一个Pageable
对象用这个复杂的排序
val sort = Sort.by(Sort.Direction.DESC, "group_id")
val pageable = PageRequest.of(pageNumber, pageSize, sort)
this.findAll(pageable)
我已经试过了,但是行不通
val sort = JpaSort.unsafe(Sort.Direction.DESC, "(group_id = 'PATH')")
val pageable = PageRequest.of(pageNumber, pageSize, sort)
this.findAll(pageable)
我如何用这个表达式而不是模型属性来构建这个Sort
对象?
您可以使用规范API生成更复杂的查询。在我的代码中,我使用这个代码来创建规范对象。
// Instead of Post class pass your own entity class.
public static Specification<Post> search(String keyword) {
return ((root, criteriaQuery, criteriaBuilder) -> {
if (keyword == null) {
return null;
}
return criteriaBuilder.like(root.get("title"), "%" + keyword + "%"));
});
}
findAll()接受规范对象,您可以传递规范和可分页对象,如:
this.findAll(search("PATH"), pageable);