*用案例类投影

Sor*_*ona 2 scala slick slick-3.0

所以我关注:http://slick.typesafe.com/doc/3.0.2/gettingstarted.html现在我想使用案例类而不是将每个模型定义为元组.

所以我有:

case class Character(id: Long, foreName: String, middleNames: String, lastName: String, age: Int)

//class Characters(tag: Tag) extends Table[(Int, String, String, String, Int)](tag, "characters")
class Characters(tag: Tag) extends Table[Characters](tag, "characters")
{
  def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
  def foreName = column[String]("forename")
  def middleNames = column[String]("middlenames")
  def lastName = column[String]("lastname")
  def age = column[Int]("age")

//  def * = (id, foreName, middleNames, lastName, age)
  def * = (id, foreName, middleNames, lastName, age) <> (Character.tupled, Character.unapply _)
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

MappedProjection类型的表达式[Character,(Long,String,String,String,Int)]不符合预期类型ProvenShape [Characters]

但那是为什么呢?它基本上与以下相同:http://de.slideshare.net/rebeccagrenier509/slick-learn2 slide 7.即使只是Slick 2,我如何才能在Slick 3中实现同样的目标?

Sha*_*nds 8

它看起来像你想要的... extends Table[Character],而不是... extends Table[Characters].