如何在Kotlin暴露模型中使用极限进行排序?

时间:2019-03-19 07:35:25

标签: kotlin kotlin-exposed

我有以下代码段:

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

sortedByDescending是Kotlin Collections API的一部分。我主要关心的是:如果选择查询看起来像这样并且不包含ORDER,那么暴露的lib如何返回表中的 top (根据时间戳)count行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 个答案:

答案 0 :(得分:4)

您正在对查询执行后的结果进行排序。

您需要使用docs中所述的orderBy方法

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