我正在关注自动递增字段的 Slick 文档示例,但在创建映射投影时遇到了麻烦……好吧,只有一列。
case class UserRole(id: Option[Int], role: String)
object UserRoles extends Table[UserRole]("userRole") {
def id = column[Int]("ID", O.PrimaryKey, O.AutoInc)
def role = column[String]("ROLE")
// ...
def * = id.? ~ role <> (UserRole, UserRole.unapply _)
// NEXT LINE ERRORS OUT
def forInsert = role <> ({t => UserRole(None, t._1)}, {(r: UserRole) => Some((r.role))}) returning id
}
错误是“值 <> 不是 scala.slick.lifted.Column[String] 的成员”
我还认为像这样设计我的架构会更有效:
case class UserRole(role: String)
object UserRoles extends Table[UserRole]("userRole") {
def role = column[Int]("ROLE", O.PrimaryKey)
// ...
def * = role <> (UserRole, UserRole.unapply _)
}
但是随后我也开始遇到与上述相同的错误。“值 <> 不是 scala.slick.lifted.Column[String] 的成员”
我到底在做什么?我是否因为只有一列而不再有投影?如果是这样,我该怎么办?