Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据JPA中的按案例排序列_Java_Spring_Spring Data_Spring Data Jpa_Jpql - Fatal编程技术网

Java Spring数据JPA中的按案例排序列

Java Spring数据JPA中的按案例排序列,java,spring,spring-data,spring-data-jpa,jpql,Java,Spring,Spring Data,Spring Data Jpa,Jpql,我想在我的ORDER BY子句中使用一个大小写表达式。这是否可能与春季数据JPA一起实现 SpringDataJPA提供org.springframework.Data.domain.Sort.Sort来处理排序,但它不包含任何按案例处理订单的函数 我希望实现以下JPA语句的等效性,但使用Spring数据JPA: ORDER BY CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount END desc

我想在我的ORDER BY子句中使用一个大小写表达式。这是否可能与春季数据JPA一起实现

SpringDataJPA提供org.springframework.Data.domain.Sort.Sort来处理排序,但它不包含任何按案例处理订单的函数

我希望实现以下JPA语句的等效性,但使用Spring数据JPA:

ORDER BY CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount END desc
当TblList.PinRequestCount为0时按大小写排序,然后TblList.PinRequestCount END desc
可能是 请参见
org/springframework/data/domain/Sort.class

并在代码中插入

yourRepository.findByAnyting(
  new Sort(new Sort.Order(Sort.Direction.DESC, "property"))
);
您可以使用按任意JPAORDER-by表达式进行排序:

String orderBy = "CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount END";
Sort sort = JpaSort.unsafe(Sort.Direction.DESC, orderBy);
String orderBy=“当TblList.PinRequestCount为0时,则TblList.PinRequestCount结束”;
Sort Sort=JpaSort.unsafe(Sort.Direction.DESC,orderBy);

更多细节和一些代码会很好地帮助您。我不认为当前版本的spring data jpa能够处理这种排序功能它只能使用Order by进行排序,而不能使用Order by CASE进行排序例如:当TblList.PinRequestCount为0时,Order by CASE则为TblList.PinRequestCount END desc。有什么技巧可以做到这一点吗?因为这显然不适用于我,而且文档似乎不支持这支持任意的按表达式排序:
“当'something'=null时,没有属性大小写,那么类型MyType找到1 else 0 end!”
对于我来说,它是使用Spring数据JPA 2.2.6和PostgreSQL开箱即用的,但是根据您使用的RDBMS或SpringDataJPA的版本,它的工作方式当然可能会有所不同。此外,错误可能是由于使用的表达式不符合所使用数据库的正确语法。