Spring JPA PageRequest通过连接列排序

Sar*_*h92 7 spring jpa spring-data-jpa

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

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

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

是否无法按我要加入的表q中的列排序?

PageRequest request = new PageRequest(page, size, Sort.Direction.DESC, "q.region");
Run Code Online (Sandbox Code Playgroud)

调试显示为“按hqregion排序”,这是不正确的,是否无法通过连接列进行排序?

Oli*_*ohm 6

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

  • 我只能让这对一对一的加入起作用。Hunterhouse - Queens 是一对多的加入。每当我输入 "queens.region" 时,hibernate 甚至不会将其插入到查询 "order by . desc" 中。 (2认同)