java - 如何在 Spring Data (JPA) 派生查询中按多个属性排序?

标签 java spring jpa spring-data spring-data-jpa

我正在查看此页面 (https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.repositories) 上有关方法命名的示例,是否可以创建复杂的链方法名称,例如

findByProgrammeAndDirectorAndProgDateBetweenOrderByProgDateStartTimeAsc

在他们给出的示例中,他们只对一个值执行 OrderBy。在上面的示例中,ProgDateStartTime 将是两个单独的值。

最佳答案

诀窍是使用方向关键字AscDesc 简单地分隔要排序的属性。因此,您的查询方法中可能想要的是:

…OrderByProgDateAscStartTimeAsc

注意,我们如何通过 Asc 结束第一个属性定义并继续处理下一个属性。

一般来说,一旦方法名称超过一定长度或复杂性,我们建议切换到基于 @Query 的查询。主要原因是客户调用这些非常长的方法很尴尬。使用 @Query 您宁愿获得查询语言的全部功能以及合理大小的方法名称,该方法名称可能是更高级的语言来表达查询的意图。

关于java - 如何在 Spring Data (JPA) 派生查询中按多个属性排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25380984/

相关文章:

java - 为什么我的应用程序不能在旧设备上运行?

java - 从 Spring Controller 强制下载 CSV

java - Spring:如何从实现通用接口(interface)的应用程序上下文中获取bean?

JavaFX BorderPane 将多个按钮设置为底部?

java - 使用 Java 的 SSL 和 Tomcat

java - 变量内容(String)访问JCheckBox的方法

java - 在Testcontainers中使用自定义DB docker-image

jpa - 字符串 id 生成器

Javax.persistence 与 @Entity bean 将 int[] 保存为 bytea (postgres)

java - 在 IntelliJ 中基于 JPA 实体绘制数据库架构