【发布时间】:2021-11-28 14:50:37
【问题描述】:
我有一个 JPQL 查询,它正在寻找可分页的不同记录。在某些情况下,可分页排序将是嵌套类中的属性。
public class Entity1 {
@Id
private long id;
@ManyToOne
private Entity2 entity2;
}
public class Entity2 {
@Id
private long id;
private String fieldToSort;
}
public interface Entity1Repository extends JpaRepository<Entity1, Long> {
Page<Entity1> findDistinct(Pageable pageable);
}
如果我调用按entity2 排序的查询,则返回正确的结果。但是,当我尝试按entity2.fieldToSort 排序时,出现以下错误:
ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
如果我删除DISTINCT 限制,查询运行正常,但会为每个Entity2 返回一个Entity1 记录。
当每个主要实体都需要不同的记录时,按子字段排序的最佳方式是什么?
【问题讨论】:
标签: java spring-data-jpa jpql