Я следую за Slick documentation example for autoincrementing fields, и у меня возникли проблемы с созданием mapped projection, который ... ну, только один столбец.Scala выступы в 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 _)
}
Но затем я начинаю получать ту же ошибку, что и выше. "value <> не является членом scala.slick.lifted.Column [String]"
Что я на самом деле делаю? У меня просто нет projection, потому что у меня только один столбец? Если да, то что должно Я делаю?