如何在Spring Data @Repository查找方法中指定默认排序?

时间:2015-09-03 05:07:33

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

低于唯一的方式(不是这样#34;干净"恕我直言)?我希望@SortDefault@PageableDefault之类的东西,但它仅适用于(REST)控制器,不适用于Spring Data REST。

@Query("SELECT e FROM FacebookPost e WHERE e.commentsPaging.next IS NOT NULL ORDER BY e.creationTime ASC")
Page<FacebookPost> findByCommentsHasNext(Pageable pageable);

此外:

  1. 如何为默认排序指定多个列?
  2. 如何指定计算的列,即涉及CASE WHEN或函数(可以在PostgreSQL中编制索引)?

1 个答案:

答案 0 :(得分:2)

我不确定@SortDefault是否是您正在寻找的,但您可以使用存储库方法名称直接指定您想要的排序类型。例如,通过阅读您的查询,我将该方法命名如下:

Page<FaceBookPost> findByCommentHasNextOrderByCreationTimeAsc(Pageable pageable); 

如果你在其他地方指示字段commentsPaging不能为null,我认为甚至不需要在你的方法名称之上使用@Query,因为Spring会自动为你执行查询。