Spring 数据 JPA 中的 ORDER BY CASE 列
ORDER BY CASE column in Spring Data JPA
我想在 ORDER BY 子句中使用 CASE 表达式。 Spring Data JPA?
这可能吗
Spring Data JPA提供了org.springframework.data.domain.Sort.Sort来处理排序,但它不包含任何处理ORDER BY CASE的函数。
我想实现等效于以下 JPA 语句,但使用 Spring Data JPA:
ORDER BY CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount END desc
有可能
见 org/springframework/data/domain/Sort.class
并插入您的代码
yourRepository.findByAnyting(
new Sort(new Sort.Order(Sort.Direction.DESC, "property"))
);
您可以使用 JpaSort.unsafe() 按任意 JPA ORDER-BY 表达式排序:
String orderBy = "CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount END";
Sort sort = JpaSort.unsafe(Sort.Direction.DESC, orderBy);
我想在 ORDER BY 子句中使用 CASE 表达式。 Spring Data JPA?
这可能吗Spring Data JPA提供了org.springframework.data.domain.Sort.Sort来处理排序,但它不包含任何处理ORDER BY CASE的函数。
我想实现等效于以下 JPA 语句,但使用 Spring Data JPA:
ORDER BY CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount END desc
有可能
见 org/springframework/data/domain/Sort.class
并插入您的代码
yourRepository.findByAnyting(
new Sort(new Sort.Order(Sort.Direction.DESC, "property"))
);
您可以使用 JpaSort.unsafe() 按任意 JPA ORDER-BY 表达式排序:
String orderBy = "CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount END";
Sort sort = JpaSort.unsafe(Sort.Direction.DESC, orderBy);