Весенние JPA находят отличия в порядке - PullRequest
0 голосов
/ 17 мая 2018

Я сделаю выбор, который выглядит следующим образом:

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

1 Ответ

0 голосов
/ 17 мая 2018

Эта ошибка означает, что вы пытаетесь упорядочить по полю, которого нет в разделе SELECT запроса.Поэтому он не может упорядочить по дате.

Я думаю, что ваша проблема заключается в FetchType, который по умолчанию должен быть LAZY, поэтому он не извлекает дату var и не может упорядочить по этому значению.

Вы можете попробовать изменить свой FetchType на EAGER или написать запрос, подобный этому

@ Query (value = "SELECT t, v FROM Treatment t JOIN t.visits v ORDER BY v.date")

В противном случае вы можете использовать критерии API

...