【发布时间】:2015-05-08 20:52:51
【问题描述】:
我正在尝试找出 Slick(Scala 函数关系模型)。我已经开始在 Slick 3.0.0 中构建原型,但当然……大多数文档要么已过时,要么不完整。
我已经达到了可以创建架构并从数据库返回对象的地步。
问题是,我得到的是一个“Rep[Bind]”,而不是我期望得到的对象。我不知道该怎么做这个值。例如,如果我尝试 rep.countDistinct.result 之类的东西,我会崩溃。
这里是代码的简要概要...为简洁起见,删除了一些代码:
class UserModel(tag: Tag) extends Table[User](tag, "app_dat_user_t") {
def id = column[Long]("n_user_id", O.PrimaryKey)
def created = column[Long]("d_timestamp_created")
def * = (id.?, created) <> (User.tupled, User.unapply)
}
case class User(id: Option[Long], created: Long)
val users = TableQuery[UserModel]
(users.schema).create
db.run(users += User(Option(1), 2))
println("ID is ... " + users.map(_.id)) // prints "Rep[Bind]"... huh?
val users = for (user <- users) yield user
println(users.map(_.id).toString) // Also prints "Rep[Bind]"...
我找不到“解包” Rep 对象的方法,也找不到任何关于它是什么或如何使用它的明确解释。
【问题讨论】:
-
再多一点信息:我发现的大多数文档都建议我可以执行“users.foreach(println)”之类的操作,但是 users.foreach 是未定义的。