Возвращает разбитый на страницы список строк из таблицы, где возвращается только последняя строка, отфильтрованная по одJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Возвращает разбитый на страницы список строк из таблицы, где возвращается только последняя строка, отфильтрованная по од

Сообщение Anonymous »

Представьте себе таблицу пользовательских сообщений, которая выглядит следующим образом:

Код: Выделить всё

| ID | MESSAGE | RECIPIENT_ID | ULTIMATE_PARENT_ID | SENT_AT             |
| 1  | Blah.   | 10           | 1                  | 2024-09-10T10:10:00 |
| 2  | Blah2   | 10           | 2                  | 2024-09-11T12:20:00 |
| 3  | Blah3   | 10           | 1                  | 2024-09-12T15:10:00 |
| 4  | Blah4   | 10           | 1                  | 2024-09-13T16:10:00 |
Я хотел бы отправить обратно последнее сообщение пользователю с дедуплицированным ULTIMATE_PARENT_ID. т. е. каждая строка будет иметь уникальный окончательный родительский идентификатор. Я отправлю объект нумерации страниц (Pageable), который, надеюсь, позаботится о нумерации страниц за меня.
По сути, запрос из приведенной выше таблицы должен отправлять обратно:

Код: Выделить всё

| ID | MESSAGE | RECIPIENT_ID | ULTIMATE_PARENT_ID | SENT_AT             |
| 2  | Blah2   | 10           | 2                  | 2024-09-11T12:20:00 |
| 4  | Blah4   | 10           | 1                  | 2024-09-13T16:10:00 |
Я использую Spring и Spring Data JPA. Но если это необходимо сделать с использованием собственного SQL, это нормально. Я пробовал, но не работает:

Код: Выделить всё

@Query(value = "SELECT dm FROM " +
"(SELECT DISTINCT d.ultimateParentId from DirectMessage d WHERE dm.recipient.id = :recipientId) DirectMessage dm " +
"ORDER BY dm.sentAt DESC", nativeQuery = true)
Page findPaginatedDirectMessagesByRecipientIdGroupByUltimateParentId(Long recipientId, Pageable pg);
Любая помощь по этому вопросу будет очень признательна, потому что я не могу найти решение ни у себя в голове, ни в Интернете!

Подробнее здесь: https://stackoverflow.com/questions/791 ... returned-f
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»