【发布时间】:2018-02-28 15:16:20
【问题描述】:
我通过连接两个具有 ManyToMany 关系并通过第三个表相关的表来构造一个 Pageable POJO,该表的引用存在于第一个表中。 我将把我的查询简化为问题的核心。
@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
通过明确提供应该在order by 中使用的表,我是否缺少任何东西或任何特定的方式来构造排序对象?
我的存储库实现了JpaRepository
非常感谢。
【问题讨论】:
标签: java spring hibernate spring-data-jpa