Size: a a a

2018 December 06

VN

Vladislav Navrocky in Kotlin JVM
Заработало. Указал sequence в колонке id при создании таблицы:
id bigint NOT NULL PRIMARY KEY DEFAULT nextval('id_sequence'),

и убрал оверрайд для id в object Users
источник

VN

Vladislav Navrocky in Kotlin JVM
Вопрос решен =)
источник

BP

Bogdan Panchenko in Kotlin JVM
Vladislav Navrocky
Заработало. Указал sequence в колонке id при создании таблицы:
id bigint NOT NULL PRIMARY KEY DEFAULT nextval('id_sequence'),

и убрал оверрайд для id в object Users
> при создании таблиц
а где создавал если не секрет ? что бы самом не наткнутся
источник

VN

Vladislav Navrocky in Kotlin JVM
Еще вот осталось понять как оно дружит с корутинами, если транзакция будет исполняться в разных потоках при континуациях
источник

VN

Vladislav Navrocky in Kotlin JVM
Bogdan Panchenko
> при создании таблиц
а где создавал если не секрет ? что бы самом не наткнутся
Ну в миграциях я создаю схему
источник

VN

Vladislav Navrocky in Kotlin JVM
flyway использую
источник

BP

Bogdan Panchenko in Kotlin JVM
Vladislav Navrocky
Еще вот осталось понять как оно дружит с корутинами, если транзакция будет исполняться в разных потоках при континуациях
в разных вроде нельзя, насколько я знаю jdbc берет как "маркер" к транзакции, или это хибер. Но корунтины не про разные потоки.
источник

VN

Vladislav Navrocky in Kotlin JVM
Корутины исполняются на тредпуле, поэтому есть шанс перескока в другой поток
источник

BP

Bogdan Panchenko in Kotlin JVM
Также нужно учитывать что jdbc - блокирующий, поэтому в корунтинах завезди Диспачер IO
источник

BP

Bogdan Panchenko in Kotlin JVM
Vladislav Navrocky
Корутины исполняются на тредпуле, поэтому есть шанс перескока в другой поток
вот тут лучше спросить в @kotlin_lang, как испоользую корунтины с бд, больше людей
источник

VN

Vladislav Navrocky in Kotlin JVM
не, ну при запросах к БД я не ожидаю что оно async будет
источник

BP

Bogdan Panchenko in Kotlin JVM
Vladislav Navrocky
не, ну при запросах к БД я не ожидаю что оно async будет
я про корунтины + БД + транзакции
источник

VN

Vladislav Navrocky in Kotlin JVM
Хм, хотя возможно будут проблемы. До первого await код исполняется в потоке вызвавшего. Поэтому, если там будет блокировка в БД, то она будет клинить и вызывавшего. Если он не многопоточный, то всё заклинит. Судя по всему.
источник

VN

Vladislav Navrocky in Kotlin JVM
а ну меня посетила мысль, что всегда можно завернуть обращения к БД в async блок и позвать await
источник

VN

Vladislav Navrocky in Kotlin JVM
главное не забывать
источник

BP

Bogdan Panchenko in Kotlin JVM
Vladislav Navrocky
а ну меня посетила мысль, что всегда можно завернуть обращения к БД в async блок и позвать await
ты заблокируешся на await
источник

VN

Vladislav Navrocky in Kotlin JVM
дык не должен
источник

BP

Bogdan Panchenko in Kotlin JVM
Vladislav Navrocky
дык не должен
ну не поток, но будешь ждать, await - в корунтине. Если вне (можно ли, их переделали) то я думаю будет блокировка
источник

U

Unat in Kotlin JVM
Vladislav Navrocky
Хм, хотя возможно будут проблемы. До первого await код исполняется в потоке вызвавшего. Поэтому, если там будет блокировка в БД, то она будет клинить и вызывавшего. Если он не многопоточный, то всё заклинит. Судя по всему.
Мне кажется, тут присутствует ошибочное утверждение
источник

BP

Bogdan Panchenko in Kotlin JVM
Vladislav Navrocky
Корутины исполняются на тредпуле, поэтому есть шанс перескока в другой поток
корунтина может переключится когда есть suspend вызов, если в транзакции их не будет должно быть все хорошо
источник