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 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