如何打印灵活查询的结果

How do I print the results of a slick query

我有一个名为 Materials 的 table。我使用 slicks 模式自动生成为我创建了 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]

澄清一下,我只使用 slick 3.1.0 而不是 play slick

您可以使用 map 评估具有副作用的函数:

Materials.map(println(_.name))

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

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

数据库对象需要根据您使用的 Slick 版本进行初始化。例如 Slick or Play Slick

我假设你有这个

val materials = TableQuery[Materials]