Size: a a a

2018 December 07

VN

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

QH

Quantum Harmonizer in Kotlin JVM
О_о
источник

VN

Vladislav Navrocky in Kotlin JVM
Что тут такого необычного? В Spring так и происходит. Делаешь Controller @Transactional и всё
источник

SZ

Sergey Zolotov in Kotlin JVM
а если нужно несколько транзакций?)
источник

SZ

Sergey Zolotov in Kotlin JVM
ну и растягивать транзакцию на долго во времени, не очень практика
источник

QH

Quantum Harmonizer in Kotlin JVM
Vladislav Navrocky
Что тут такого необычного? В Spring так и происходит. Делаешь Controller @Transactional и всё
да, ещё там как раз все привычные к плохому «внутреннему дизайну», статикам, рефлексии и прочему неподдерживаемому
источник

VN

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

VN

Vladislav Navrocky in Kotlin JVM
Sergey Zolotov
а если нужно несколько транзакций?)
Тогда делаем несколько транзакций
источник

AE

Alexandr Emelyanov in Kotlin JVM
Vladislav Navrocky
а в случае с корутинами такое надо
+
источник

VN

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

VN

Vladislav Navrocky in Kotlin JVM
вот когда затормозит, тогда буду точечно решать проблемы
источник

VN

Vladislav Navrocky in Kotlin JVM
Сейчас думаю, закопипастить код transaction {}, выковыривать из TLS транзакцию и запоминать в переменную или как-то еще. Потом уже по месту работы с данными краткосрочно ложить её назад в TLS
источник

IL

Ivan Lopatin in Kotlin JVM
Vladislav Navrocky
Что тут такого необычного? В Spring так и происходит. Делаешь Controller @Transactional и всё
но в спринге тоже нельзя иметь одну транзакцию на несколько потоков
источник

QH

Quantum Harmonizer in Kotlin JVM
ну спринг — легаси, логично, что ничего для корутин там нет
источник

VN

Vladislav Navrocky in Kotlin JVM
Конечно это пздц костыль и он сломается при очередном обновлении Exposed
источник

AE

Alexandr Emelyanov in Kotlin JVM
Ivan Lopatin
но в спринге тоже нельзя иметь одну транзакцию на несколько потоков
да, но вот в корутинах вполне себе возможно, только бы запилить
источник

AE

Alexandr Emelyanov in Kotlin JVM
Quantum Harmonizer
ну спринг — легаси, логично, что ничего для корутин там нет
спринг не легаси ни в коем месте
источник

IL

Ivan Lopatin in Kotlin JVM
Quantum Harmonizer
ну спринг — легаси, логично, что ничего для корутин там нет
В спринге есть @Async, который работает на CompletableFuture, но транзакция на такие методы не распространяется, конечно же
источник

BP

Bogdan Panchenko in Kotlin JVM
Vladislav Navrocky
Что тут такого необычного? В Spring так и происходит. Делаешь Controller @Transactional и всё
ну так оно однопоточное
источник

AE

Alexandr Emelyanov in Kotlin JVM
Vladislav Navrocky
Что тут такого необычного? В Spring так и происходит. Делаешь Controller @Transactional и всё
кстати bad practice
источник