【问题标题】:JOOQ: how to fetch records grouped by field?JOOQ:如何获取按字段分组的记录?
【发布时间】:2021-12-10 23:35:44
【问题描述】:

我需要使用 JOOQ 获取地图 Map<String, List<Message>>。我写在 Kotlin 上。我需要按用户名对消息进行分组。我的代码开始于:

fun getAllForUsernames(usernames: List<String>): Map<String, List<Message>> =
        dsl.selectFrom(Messages.MESSAGES)
            .where(Messages.MESSAGES.USERNAME.`in`(usernames))
            // ??? returns Map<String, List<Message>>

请建议如何完成功能。

【问题讨论】:

    标签: kotlin jooq


    【解决方案1】:

    您可以使用开箱即用的映射功能之一,即ResultQuery.fetchGroups(Field, Class)

    dsl.selectFrom(MESSAGES)
       .where(MESSAGES.USERNAME.`in`(usernames))
       .fetchGroups(MESSAGES.USERNAME, Message::class.java)
    

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多