Size: a a a

Kotlin Community

2020 September 13

AN

Alexander Nozik in Kotlin Community
Максим Воротынский
Не так спросил
Если сделать каст к Iterable, то запрос выполняется в этот момент?
Нельзя делать касты если система типов это не позволяет
источник

AN

Alexander Nozik in Kotlin Community
Это вам не JS
источник

с#

саша сок #KotlinGang... in Kotlin Community
Максим Воротынский
Не так спросил
Если сделать каст к Iterable, то запрос выполняется в этот момент?
во время кастов ничего не может выполняться
источник

с#

саша сок #KotlinGang... in Kotlin Community
если у вас тип Iterable, то он Iterable всегда, просто в момент каста, вы явно это указываете
источник

МВ

Максим Воротынский... in Kotlin Community
object Users : Table() {
   val id = integer("id").autoIncrement()
   val email = varchar("email", 255)
   val password = varchar("password", 255)
   
   override val primaryKey: PrimaryKey? = PrimaryKey(id)
   
   override suspend fun getAllUsers(): Iterable<User> = dbQuery {
       Users.selectAll().map {
           toUser(it)
       }
   }
}

suspend fun <T> dbQuery(block: () -> T): T =
   withContext(Dispatchers.IO) {
       transaction { block() }
   }

```
users.getAllUsers().take(1).
источник

МВ

Максим Воротынский... in Kotlin Community
в последней строчке, я не получу загрузку всей таблицы?
источник

с#

саша сок #KotlinGang... in Kotlin Community
Максим Воротынский
object Users : Table() {
   val id = integer("id").autoIncrement()
   val email = varchar("email", 255)
   val password = varchar("password", 255)
   
   override val primaryKey: PrimaryKey? = PrimaryKey(id)
   
   override suspend fun getAllUsers(): Iterable<User> = dbQuery {
       Users.selectAll().map {
           toUser(it)
       }
   }
}

suspend fun <T> dbQuery(block: () -> T): T =
   withContext(Dispatchers.IO) {
       transaction { block() }
   }

```
users.getAllUsers().take(1).
я бы назвал coroutineTransaction btw
источник

OY

Oleg Yukhnevich in Kotlin Community
саша сок #KotlinGang
я бы назвал coroutineTransaction btw
источник

с#

саша сок #KotlinGang... in Kotlin Community
ну тем более)
я думал автор уже проверил наличие этого в либе
источник

IP

Iaroslav Postovalov in Kotlin Community
Максим Воротынский
А если я напишу Users.selectAll().map { toUser(it) }, затем сделаю каст к Iterable и на нем take(1), то сколько пользоваетелей загрузятся из базы? 1 или все?
насколько я понимаю, вы ищете что-то в духе linq2db. так вот, прям такого в экспоузеде нет
источник

IP

Iaroslav Postovalov in Kotlin Community
пишите обычные нормальные запросы, exposed DSL покрывает весь невендорский синтаксис SQL
источник

PS

Pavel Shilyagov in Kotlin Community
Максим Воротынский
в последней строчке, я не получу загрузку всей таблицы?
Получишь. Как сказали выше - selectAll загрузит все.
В exposed нет аналога дотнетовских Expression tree
источник

A

Alipen in Kotlin Community
Котлин гавно, приложение можно сделать на js
источник

AN

Alexander Nozik in Kotlin Community
Alipen
Котлин гавно, приложение можно сделать на js
Делайте. В чате по JS.
источник

A

Alipen in Kotlin Community
Alexander Nozik
Делайте. В чате по JS.
Это рофл. Котлин ни чего не заменит.
источник

AN

Alexander Nozik in Kotlin Community
Alipen
Это рофл. Котлин ни чего не заменит.
Замечательно, но в чем был смысл этого диалога?
источник

с#

саша сок #KotlinGang... in Kotlin Community
Pavel Shilyagov
Получишь. Как сказали выше - selectAll загрузит все.
В exposed нет аналога дотнетовских Expression tree
почему, там есть limit, а limit это sql выражение
источник

с#

саша сок #KotlinGang... in Kotlin Community
можно сделать
Users.limit(1) или как-то так
источник

с#

саша сок #KotlinGang... in Kotlin Community
там сначала лимит, а потом selectAll
источник

с#

саша сок #KotlinGang... in Kotlin Community
стоп, selectAll не загружает всю таблицу вроде как
источник