сохранить серию зависимых объектов БД в базе данных, используя scala и slick - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть база данных, где мы используем Scala и Slick для общения с базой данных.У меня есть 4 класса Scala Obj1, Obj2, Obj3, Obj4, которые нужно создавать один за другим, например, у Obj2 может быть внешний ключ, который указывает на Obj1, Obj3 имеет два внешних ключа, которые указывают на Obj1 и Obj2 и т. Д.Итак, насколько я понимаю, каждый ObjK после Obj1 должен ждать, пока предыдущие будут в базе данных.Как это можно решить в Scala / Slick?Thx

1 Ответ

0 голосов
/ 28 сентября 2018

Это должно работать, я думаю.

def ins(o1: Obj1, o2: Obj2, o3: Obj3): Future[(Obj1, Obj2, Obj3)] = {
  for {
    id1 <- db.run(obj1s returning obj1s.map(_.id) += o1)
    o1updated = o1.copy(id = id1)
    o2updated = o2.copy(o1id = id1)
    o2id <- db.run(obj2s ... += o2updated)
    ...
  } yield (o1updated, o2updated, ...)
}

Вы получите лучший ответ, если предоставите некоторый пример кода с определениями реальных классов, сигнатурами функций, примерами ввода и вывода и т. Д. То есть, что вы пытались, и что случилось?

...