Это должно работать, я думаю.
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, ...)
}
Вы получите лучший ответ, если предоставите некоторый пример кода с определениями реальных классов, сигнатурами функций, примерами ввода и вывода и т. Д. То есть, что вы пытались, и что случилось?