Как сортировка работает с лимитом в представленной модели kotlin? - PullRequest
1 голос
/ 19 марта 2019

У меня есть следующий фрагмент кода:

UserDataModel
                .find {
                    UserDataTable.type eq type and (
                            UserDataTable.userId eq userId
                            )
                }
                .limit(count)
                .sortedByDescending { it.timestamp }

sortedByDescending является частью API коллекций kotlin.Моя главная проблема: как открытая библиотека возвращает top (согласно метке времени) count строк из таблицы, если запрос select выглядит следующим образом и не содержит предложения ORDER BY?

SELECT USERDATA.ID, USERDATA.USER_ID, USERDATA.TYPE,
USERDATA.PAYLOAD, USERDATA."TIMESTAMP"
FROM USERDATA 
WHERE USERDATA.TYPE = 'testType'
and USERDATA.USER_ID = 'mockUser'
LIMIT 4

И возможно ли, что иногда или каким-то образом возвращаемый результат будет разным для одних и тех же данных?

Действительно боролись здесь.Заранее спасибо.

1 Ответ

4 голосов
/ 19 марта 2019

Вы сортируете результаты после выполнения запроса .

Вам необходимо использовать метод orderBy, как описано в документах

UserDataModel
  .find {
    UserDataTable.type eq type and (UserDataTable.userId eq userId)
  }
  .limit(count)
  .orderBy(UserDataTable.timestamp to SortOrder.DESC)
...