フィールドの自動インクリメントに関する Slick のドキュメントの例に従っていますが、マッピングされたプロジェクションの作成に問題があります...まあ、列が 1 つしかありません。
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] のメンバーではありません」
私は本当に何をしているのですか?列が 1 つしかないため、投影がなくなったのでしょうか。もしそうなら、私は何をすべきですか?