Spring Data JPA中的ORDER BY CASE列

时间:2016-07-01 10:05:43

标签: java spring spring-data spring-data-jpa jpql

我想通过case语句进行ORDER BY,是否可以使用Spring Data JPA? Spring Data JPA提供org.springframework.data.domain.Sort.Sort来处理排序,但它不包含任何按行事处理的函数。

2 个答案:

答案 0 :(得分:1)

您可以使用JpaSort.unsafe()对任意JPA ORDER-BY 表达式进行排序:

String orderBy = "CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount END";
Sort sort = JpaSort.unsafe(Sort.Direction.DESC, orderBy);

答案 1 :(得分:-2)

是的可能 见org/springframework/data/domain/Sort.class

并插入代码

yourRepository.findByAnyting(
  new Sort(new Sort.Order(Sort.Direction.DESC, "property"))
);