Как отобразить значение count () из QueryAlias ​​в Exposed - PullRequest
1 голос
/ 02 апреля 2020

Как мне отобразить значение count () из ResultRow, используя QueryAlias ​​в Exposed
Или я что-то делаю совершенно неправильно?

val countAlias = EventTable.join(AttendeeEventTable, JoinType.INNER)
    .slice(EventTable.id, EventTable.id.count())
    .selectAll()
    .groupBy(EventTable.id)
    .alias("countAlias")

EventTable
    .join(countAlias, JoinType.LEFT, EventTable.id, countAlias[EventTable.id])
    .selectAll()
    .map {
         Event(
               id = it[EventTable.id].value,
               name = it[EventTable.name],
               countOfAttendeees = it[countAlias[EventTable.id.count()]],  //Not working. How to get the count() from ResultRow
              )
         }

1 Ответ

1 голос
/ 13 апреля 2020

Просто определите количество столбцов перед запросом. Вот пример:

        val count = FooTable.status.count().alias("count")

        FooTable
            .slice(FooTable.status, count)
            .selectAll()
            .groupBy(FooTable.status)
            .map {
                FooCount(
                    it[FooTable.status],
                    it[count]
                )
            }

Как видите, я создал значение count, а затем использую его в выборе slice, а затем в отображении строк.

...