小编Nig*_*gat的帖子

Spring Data JPA - 连接表上的可分页排序

我正在构建一个 Pageable POJO,方法是连接 2 个具有多对多关系并通过第三个表相关的表,该表的引用存在于第一个表中。我将简化我的查询到问题的核心。

@Query("SELECT new package.myDTO(t1.name, t2.description) FROM table1 t1, table2 t2 where t1.relatedtable.table2Id = t2.id") Page<myDTO> findSomething(Pageable pageable);

我所有的字段都必须是可排序的,但正如我从这个查询的 Hibernate 结果中注意到的,它总是使用查询中提供的第一个实体(在本例中为 table1)来应用来自我的 Pageable 对象的排序。

因此,如果我想按 table2 的描述进行排序,则在排序字段中传递“描述”会导致order by t1.description而不是order by t2.description

有什么我遗漏的或通过明确提供应该在 Sort 中使用的表来构造 Sort 对象的任何特定方法order by吗?我的存储库实现了JpaRepository

非常感谢。

java spring hibernate spring-data-jpa

5
推荐指数
1
解决办法
1658
查看次数

标签 统计

hibernate ×1

java ×1

spring ×1

spring-data-jpa ×1