我要选择看起来像:
findDistinctByPatientOrderByVisits_DateDesc(patient: Patient, page: Pageable): Page<Treatment>
治疗是一个包含患者及其就诊的表格,可以更多地进行单一治疗。 我需要做的唯一原因只有OrderBy我正在接受重复治疗。
此实体包含字段:
@Entity
class Treatment(
@OneToMany(cascade = arrayOf(CascadeType.ALL), mappedBy = "Instance")
var visits: MutableList<Visit> = mutableListOf()
@ManyToOne
val patient: Patient
)
@Entity
class Visit(
var date: LocalDateTime = LocalDateTime.MAX,
)
但我收到错误:
SELECT DISTINCT,ORDER BY表达式必须出现在选择列表
中
答案 0 :(得分:0)
该错误意味着您尝试按查询的SELECT部分中不存在的字段进行排序。所以它不能按日期排序。
我认为您的问题属于FetchType,默认情况下应为LAZY,因此它不会检索日期变量,也无法按该值排序。
您可以尝试将FetchType更改为EAGER,也可以编写类似
的查询@Query(value =&#34; SELECT t,v FROM Treatment t JOIN t.visits v ORDER BY v.date&#34;)
否则你可以使用标准api