Spring JPA PageRequest 按连接列排序

Spring JPA PageRequest ordering by a join column

我正在使用 Spring PageRequest 按数据库中的列对自定义查询进行排序(排序)。

如果我正在执行自定义查询,例如:

 @Query( value = "select h from hunterhouse h join h.queens q where q.name = 'Computer Science'") 

我要加入的 table 中的 q 中的列无法排序吗?

PageRequest request = new PageRequest(page, size, Sort.Direction.DESC, "q.region");

调试结果为 "order by h.q.region",这是不正确的,是否无法按连接列排序?

您只需将要加入的完整路径放入排序表达式即可。因此,您需要使用的是 queens.region,然后将其转换为 h.queens.region 并附加到您定义的 JPQL 查询中。

我遇到了同样的问题!此错误已在 Spring Data JPA 1.7.3 中修复 - 只需确保您的版本高于或等于 1.7.3!之后它将与 queens.region

一起使用

Spring 来源:https://jira.spring.io/browse/DATAJPA-726