scala - 从光滑的查询中获取所有实体

标签 scala slick

如何从 Query[Ta​​bleType] 或 Query[Ta​​bleType, EntityType, Seq] 中读取所有实体?在教程中有“结果”方法,但它没有在所有配置之后定义。

编辑:

我尝试使用 qbooks.result 和 (for(book <- qbooks) yield(book)).result 从这个模型:

import java.sql.Date
import slick.driver.H2Driver.api._
import slick.backend.DatabasePublisher
import slick.driver.JdbcProfile
import entities._

object tables {
  private val db = Database.forConfig("h2db")

  //one of the table queries
  val qbooks = TableQuery[Books]

  db.run(
    DBIO.seq(
      qbooks.schema.create,
      ...
    )
  )

  //one of the tables
  class Books(tag: Tag) extends Table[Book](tag, "books") {
    def isbn = column[Int]("isbn", O.PrimaryKey, O.AutoInc)
    def author = column[String]("author")
    def title = column[String]("title")
    def year = column[Int]("edition_year")
    def amount = column[Int]("amount")
    def * = (isbn, author, title, year, amount) <>
        (Book.tupled, Book.unapply)
  }

最佳答案

val qbooks = TableQuery[Books]似乎是一个宏(必须在编译器中启用宏吗?)。我没有使用过这种语法,但以下内容为我编译

//one of the table queries
  object qbooks extends TableQuery[Books](tag ⇒ new Books(tag)) {
    def all = qbooks.result
  }

db.run(qbooks.all)

关于scala - 从光滑的查询中获取所有实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30600038/

相关文章:

scala - 何时在 Scala 中使用 Option,何时不使用

java - 声音在 eclipse 中加载和播放完美,但在转换为可运行的 jar 时卡住

scala - `apply` 方法重载时 : Slick error message 'value tupled is not a member of object'

java - Scala库初始化设计

java - Scala:Trait Companion Object 在 Java 中不可见

scala - 从函数返回通用父类(super class)而不是子类

mysql - DDL 生成上的 Slick 2.1 MySqlSyntaxErrorException

scala - 如何在 Scala 中测试对象的私有(private)方法

java - 我如何使用 slick 3.0 一次返回一行?

mysql - 获取表 A 中引用表 B 的行数