Size: a a a

2019 September 01

IK

Igor Komarov in Kotlin JVM
Написать - по минуте на класс
источник

BV

Boris Vanin in Kotlin JVM
Ihar Sadounikau
Главный минус который как по мне у jooq это отсутствие поддержки data classes
Главный минус, что он не умеет в настоящий саспенд, в отличии от jasync-а
источник

BV

Boris Vanin in Kotlin JVM
И вообще это вещи разного калибра. Джасинк это по сути драйвер, а jooq это скорее продвинутый кверибилдер
источник

BV

Boris Vanin in Kotlin JVM
Сравнивать странно
источник

IS

Ihar Sadounikau in Kotlin JVM
Boris Vanin
Главный минус, что он не умеет в настоящий саспенд, в отличии от jasync-а
Основная идея suspend это долгоиграющая операция, если я правильно понимаю, но если это работа с базой, то долгих операций быть не должно
источник

IS

Ihar Sadounikau in Kotlin JVM
Boris Vanin
Сравнивать странно
Согласен, было интересно услышать мнение относительно реализации асинхронного доступа
источник

BV

Boris Vanin in Kotlin JVM
Ihar Sadounikau
Основная идея suspend это долгоиграющая операция, если я правильно понимаю, но если это работа с базой, то долгих операций быть не должно
Нет, саспенд это просто другой способ организации асинхронного кода
источник

BV

Boris Vanin in Kotlin JVM
Долгоигрющесть тут не причём
источник

IS

Ihar Sadounikau in Kotlin JVM
Boris Vanin
Долгоигрющесть тут не причём
То есть две suspend функции подряд пойдут работать так же как и два async await блока подряд?
источник

VP

Vladimir Petrakovich in Kotlin JVM
dima
@Get(value = «/users/demo», produces = MediaType.APPLICATION_JSON)
public Flowable<User> getDemoUsers() {
   String query = dslContext.select(USERS.ID, USERS.EMAIL)
                            .from(USERS)
                            .where(USERS.EMAIL.like(«%demo%»))
                            .orderBy(USERS.ID)
                            .getSQL(ParamType.INLINED);


   return Flowable.fromFuture(connection.inTransaction(c -> connection.sendQuery(query)))
                  .flatMap(result -> Flowable.fromIterable(() -> result.getRows().iterator()))
                  .map(r -> new User(r.getLong(USERS.ID.getName()), r.getString(USERS.EMAIL.getName())))
                  .doOnError(error -> {
                      throw new RuntimeException(error);
                  });
}
Параметры прям в SQL вставляются? Ну такое.
Кстати вместо таких like() с процентами там есть contains().
источник

d

dima in Kotlin JVM
Vladimir Petrakovich
Параметры прям в SQL вставляются? Ну такое.
Кстати вместо таких like() с процентами там есть contains().
можно взять getSql + getBindValues
источник

d

dima in Kotlin JVM
Но будет ли разница - по идее от жука я уже безопасный запрос получаю
источник

VP

Vladimir Petrakovich in Kotlin JVM
dima
Но будет ли разница - по идее от жука я уже безопасный запрос получаю
Ну по идее СУБД легче работать с такими запросами, но это только предположение.
источник

d

dima in Kotlin JVM
Vladimir Petrakovich
Ну по идее СУБД легче работать с такими запросами, но это только предположение.
тогда останется сделать реплэйс ? на $index, запрос в prepared statement, значения из getBindValues. Но по посколько безопасность гарантирует жук, я решил сразу напрямую запрос брать. Но не будет большой проблемы переделать.
источник

BV

Boris Vanin in Kotlin JVM
Ihar Sadounikau
То есть две suspend функции подряд пойдут работать так же как и два async await блока подряд?
Что такое async/await? Это хоть из какого языка сравнение?
источник

IS

Ihar Sadounikau in Kotlin JVM
Boris Vanin
Что такое async/await? Это хоть из какого языка сравнение?
Котлин конечно :)
источник

BV

Boris Vanin in Kotlin JVM
Саспенд функции это по сути те же самые функции, только способные прерываться и потом продолжаться с того же места
источник

BV

Boris Vanin in Kotlin JVM
В котлине async/await это такие библиотечные функции, а саспенд это языковая фича. На базе которой и сделаны все библиотеки корутиновые
источник

BV

Boris Vanin in Kotlin JVM
Т.е. сама фича даёт возможность прерывавать и восстанавливать выполнение. А разные либы обыгрывают это по разному
источник

BV

Boris Vanin in Kotlin JVM
Поэтому вопрос немного некорректный
источник