如何打印光滑查询的结果

时间:2015-11-05 06:06:03

标签: scala slick

我有一张名为Materials的表。我使用了slicks schema auto generation来为我创建TableQuery类。

我无法弄清楚如何打印简单查询的结果。

Materials.map(_.name)

我试过

val m = Materials.map(_.name).toString()

println(m)

并获得结果

Rep(Bind)

如果我尝试

Materials.map(_.name).forEach(m => println(m))

我收到编译错误

value forEach is not a member of slick.lifted.Query[slick.lifted.Rep[Option[String]],Option[String],Seq]

澄清我正在使用光滑的3.1.0而不是播放光滑

2 个答案:

答案 0 :(得分:2)

您编写了一个Query,但需要通过调用其结果方法

将其转换为Action
val query = materials.map(_.name)
val action = query.result
val results: Future[ Seq[Option[ String ] ]] = db.run( action)
results.foreach( println )

需要根据您使用的Slick版本初始化db对象。例如SlickPlay Slick

我认为你有这个

val materials = TableQuery[Materials]

答案 1 :(得分:0)

您可以使用地图评估带副作用的功能:

Materials.map(println(_.name))