この質問は約滑らかな3.0または3.1である(私は約フレキシブル午前)スカラ+ 3:別のテーブルへつのクエリの結果を挿入
私はmap
、for
などで処理中間クエリを持っています私が望む結果を得るために。最後に、私は
val foo: DBIOAction[Seq[MySchema.Bar], NoStream, Effect.Read]
は、今私はval bar: TableQuery[MySchema.Bar]
を持っていると私はそれにしてFOOを挿入します。
fooがSeq
の場合、私は単にbar ++= foo
を実行できますが、そうではありません。
私が見つけた唯一の方法は、それを待って結果を具体化することです。この
val query = (bar ++= Await.result(db.run(foo), Duration.Inf))
明らか
query
同様db.run
でいくつかの時点で実行する必要があります。しかし、今では2つのDBランがあります。すべてを1回実行する方が良いのではないでしょうか?
これを行うより良い方法はありますか? 、
'バー+ = foo':だから、あなたが書くことができ、単一のクエリにこのような何かをコンパイルする
?しかし、 '+ ='か '++ =' ...(?)のどちらに関係なく 'db.run'する必要があります。 – kornfridge
私は++ =副作用がslick2 apiであり、slick3より機能的なので、明示的に 'db.run'を実行する必要があります。 – kornfridge
はい++ =の結果は、実行する必要のあるクエリになりました。私はこの時点で問題を編集しました。しかし、私はこの作業のために2つのdb.run呼び出しを行う必要があります。 – masgo