我正在查看此页面 (https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.repositories) 上有关方法命名的示例,是否可以创建复杂的链方法名称,例如
findByProgrammeAndDirectorAndProgDateBetweenOrderByProgDateStartTimeAsc
在他们给出的示例中,他们只对一个值执行 OrderBy。在上面的示例中,ProgDate
和 StartTime
将是两个单独的值。
最佳答案
诀窍是使用方向关键字Asc
和Desc
简单地分隔要排序的属性。因此,您的查询方法中可能想要的是:
…OrderByProgDateAscStartTimeAsc
注意,我们如何通过 Asc
结束第一个属性定义并继续处理下一个属性。
一般来说,一旦方法名称超过一定长度或复杂性,我们建议切换到基于 @Query
的查询。主要原因是客户调用这些非常长的方法很尴尬。使用 @Query
您宁愿获得查询语言的全部功能以及合理大小的方法名称,该方法名称可能是更高级的语言来表达查询的意图。
关于java - 如何在 Spring Data (JPA) 派生查询中按多个属性排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25380984/