Spring JPA页面请求按联接列排序
我使用SpringPageRequest按数据库中的列对自定义查询进行排序(排序) 如果我正在执行自定义查询,例如:Spring JPA页面请求按联接列排序,spring,jpa,spring-data-jpa,Spring,Jpa,Spring Data Jpa,我使用SpringPageRequest按数据库中的列对自定义查询进行排序(排序) 如果我正在执行自定义查询,例如: @Query( value = "select h from hunterhouse h join h.queens q where q.name = 'Computer Science'") 在我要加入的表q中,不能按列排序吗 PageRequest request = new PageRequest(page, size, Sort.Direction.DESC, "q
@Query( value = "select h from hunterhouse h join h.queens q where q.name = 'Computer Science'")
在我要加入的表q中,不能按列排序吗
PageRequest request = new PageRequest(page, size, Sort.Direction.DESC, "q.region");
调试结果显示为“按h.q.region排序”,这是不正确的,不能按联接列排序吗?您只需将要联接的完整路径放入排序表达式中即可。因此,您需要使用
queens.region
,然后将其转换为h.queens.region
,并附加到您定义的JPQL查询中。我也遇到了同样的问题!这个错误在SpringDataJPA1.7.3中被修复了-只需确保您的版本高于或等于1.7.3!之后,它将与皇后区一起工作
Spring源代码:我只能让它在一对一连接中工作。Hunterhouse-Queens是一对多的参与者。每当我输入“queens.region”时,hibernate甚至不会将其插入查询“order by.desc”中。我理解这种方法,但我的问题是排序数据来自Swagger。。。因此,输入字段名的人不知道它来自特定的表,排序也不起作用。如果使用了字段(包括表)的完整名称,则排序效果良好。我找不到关于这个主题的任何东西,我甚至不知道要搜索什么。。。你能推荐一个指针吗?谢谢:)