Slick 3.0 在Slick 3.0.0中从数据库序列获取结果
我试图获取一个查询的结果,该查询作为一系列操作的一部分执行,这些操作作为参数传递给Slick 3.0的DBIO.sequence()方法。下面是同样的代码片段Slick 3.0 在Slick 3.0.0中从数据库序列获取结果,slick-3.0,Slick 3.0,我试图获取一个查询的结果,该查询作为一系列操作的一部分执行,这些操作作为参数传递给Slick 3.0的DBIO.sequence()方法。下面是同样的代码片段 val query = for { (tt, th) <- tmpTrades join TableQuery[TrdHeader] on (_.tradeNum === _.tradeNum) } yield (tt.tradeNum, th.internalInd, th.tradeStatusInd, th.tradeDt
val query = for {
(tt, th) <- tmpTrades join TableQuery[TrdHeader] on (_.tradeNum === _.tradeNum)
} yield (tt.tradeNum, th.internalInd, th.tradeStatusInd, th.tradeDt, th.tradeInputDt, th.lastModifyDt)
val queryAction = query.result
val actions = Seq(tmpTrades.schema.create, tmpTrades ++= trades.toSeq: _*, queryAction, tmpTrades.schema.drop)
val resultFuture = db.run(DBIO.sequence(actions))
val query=for{
(tt,th)您应该使用flatMap
而不是DBIO.sequence
:
val myAction=tmpTrades.schema.create.flatMap{{\u=>
tmpTrades++=trades.toSeq
}.flatMap{{u=>
质询
}.flatMap{queryResult=>
//在末尾返回结果。
tmpTrades.schema.drop.map{{{u=>queryResult}
}
db.run(myAction.Transactional)
或者与收益率的相同:
val myAction=for{
_最后,要打印结果:val result=db.run(myAction.transactionaly)
,它是使用以下命令打印的:result.foreach(println)
,如果在REPL(非生产代码)中,您可以阻塞,等待println:wait.ready(result,Duration.Inf)