Я занимаюсь обновлением приложения Play Framework с помощью slick 2.1.0 для play-slick 1.0.0 (включая slick 3.0.0).Множественные вставки в одной транзакции с Slick 3.0
У меня возникли проблемы с пониманием того, как обрабатываются транзакции.
Допустим, у меня есть следующий фрагмент кода:
db.withTransaction { implicit session =>
for (id <- ids) yield someTable.insert(SomeObject(id))
}
Как сделать это в пятно 3? Я хочу, чтобы все объекты были вставлены в одну транзакцию. Если один объект не вставлен, ни один из них не должен быть вставлен.
Это не работает. Не похоже, что функция 'insert' существует уже. Я попытался заменить его на '+ =', но это тоже не сработает. – ulejon
После некоторого разговора я придумал следующее: 'val toInsert = for (id <- ids) yield SomeObject (id)' 'val insertActions = DBIO.seq (someTable ++ = toInsert.toSeq) .transactionly' 'val f: Future [Unit] = db.run (insertActions)' Не уверен, что это лучший способ сделать это? – ulejon