【问题标题】:How to specify default sort in Spring Data @Repository find method?如何在 Spring Data @Repository 查找方法中指定默认排序?
【发布时间】:2015-09-03 05:07:33
【问题描述】:

这是唯一的方法(不是那么“干净”恕我直言)?我期待像 @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中索引)?

【问题讨论】:

  • 有趣的是,我试图用谷歌搜索这个,我在 stackoverflow 上找到了我自己的问题。你好我的过去:p

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


【解决方案1】:

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

Page<FaceBookPost> findByCommentHasNextOrderByCreationTimeAsc(Pageable pageable); 

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

【讨论】:

  • 谢谢!我不知道 OrderBy 可以在方法名称中使用。但是,就我而言,我仍在寻找可以与 @Query 一起使用的通用解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
  • 1970-01-01
  • 2021-10-18
  • 2019-12-06
  • 2019-03-08
  • 1970-01-01
  • 2017-09-14
相关资源
最近更新 更多