#kotlin-exposed
#kotlin-exposed
Вопрос:
обычно я могу создать SQL-запрос, подобный этому, для обновления двух отдельных таблиц:
UPDATE Books, Orders
SET Orders.Quantity = Orders.Quantity 2,
Books.InStock = Books.InStock - 2
WHERE
Books.id = Orders.BookID
AND Orders.id = 1002;
DAO было бы похоже:
internal object Books : LongIdTable() {
val InStock: Column<Long> = long("in_stock")
}
internal object Books : LongIdTable() {
val Quantity: Column<Long> = long("quantity")
val BookID: Column<Long> = long("book_id").references(Books.id)
}
Каков рекомендуемый способ выполнения аналогичного SQL-запроса с использованием Exposed?
2) Отдельный вопрос, можем ли мы написать два запроса на обновление в одном блоке транзакции? Что-то вроде этого:
transaction {
TableA.update({ TableA.id eq id }) { row ->
row[TableA.status] = appStatus
}
TableB.update({ TableB.appID eq id }) { row ->
row[TableB.status] = userStatus
}
}
Спасибо за любые указания.
Комментарии:
1. вы получили ответ или какой-либо намек, дайте мне знать
2. Я думаю, вы делаете это правильно. Всего два обновления в одной транзакции.
Ответ №1:
Да, вы можете написать более одного оператора на блок транзакции, и я думаю, что это разумный способ реализовать ваше обновление