Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 光滑投影-理解类型错误_Scala_Slick - Fatal编程技术网

Scala 光滑投影-理解类型错误

Scala 光滑投影-理解类型错误,scala,slick,Scala,Slick,我有下面的代码,试图用伴随类建立一个相对简单的表映射 case class Client( id: Integer, givenName: String, familyName: String, birthDate: Option[Date], nationality: Option[String] ) class ClientsTable(tag: Tag) extends Table[Client](tag, "Client")

我有下面的代码,试图用伴随类建立一个相对简单的表映射

case class Client(
      id: Integer,
      givenName: String,
      familyName: String,
      birthDate: Option[Date],
      nationality: Option[String]
)

class ClientsTable(tag: Tag) extends Table[Client](tag, "Client") {

  def id = column[Int]("ID", O.PrimaryKey, O.AutoInc)
  def givenName = column[String]("GIVEN_NAME", O.NotNull)
  def familyName = column[String]("FAMILY_NAME", O.NotNull)
  def birthDate = column[Date]("BIRTH_DATE", O.Nullable)
  def nationality = column[String]("NATIONALITY", O.Nullable)

  def * = (id, givenName, familyName, birthDate.?, nationality.?) <> ((Client.apply _).tupled, Client.unapply) 
}
现在,我已经前后阅读了一篇文章,但我仍然遗漏了一些东西


我知道这个投影函数试图创建表的默认投影,以便以后使用DSL进行查询。我明白了,我在这里要做的是将一系列元组(真正从数据库返回的元组)转换成一系列
客户机
对象。我不完全理解
以及之后发生的一切的魔力,因此我有点被困在如何解决这个错误上。

Int和
Integer
之间有区别。我想可能是罪魁祸首。是的,就是这样。使用scala.Int而不是java.lang.Integer是否惯用?当然。我不认为我在java兼容的代码片段和库之外看到过
java.lang.Integer
。Scala的
Int
一路走来。
No matching Shape found. Slick does not know how to map the given types. 
Possible causes: T in Table[T] does not match your * projection. Or you use an unsupported type in a Query (e.g. scala List). 
Required level: scala.slick.lifted.FlatShapeLevel Source type: (scala.slick.lifted.Column[Int], scala.slick.lifted.Column[String], scala.slick.lifted.Column[String], scala.slick.lifted.Column[Option[java.sql.Date]], scala.slick.lifted.Column[Option[String]]) Unpacked type: (Integer, String, String, Option[java.sql.Date], Option[String]) Packed type: Any