Scala 找不到匹配的形状。Slick不知道如何映射给定的类型
我的案例课Scala 找不到匹配的形状。Slick不知道如何映射给定的类型,scala,playframework,slick,Scala,Playframework,Slick,我的案例课 case class Entry(id: Int, title: String, content: String, publishedDate: Date, views: Int) 申拿河 class Entries(tag: Tag) extends Table[Entry](tag, "ENTRIES") { def id = column[Int]("id", O.PrimaryKey, O.A
case class Entry(id: Int, title: String, content: String,
publishedDate: Date, views: Int)
申拿河
class Entries(tag: Tag) extends Table[Entry](tag, "ENTRIES") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def title = column[String]("title")
def content = column[String]("content")
def publishedDate = column[Date]("published_date")
def views = column[Int]("views")
override def * = (id, title, content, publishedDate, views) <> (Entry.tupled, Entry.unapply)
}
val entries = TableQuery[Entries]
类条目(tag:tag)扩展表[Entry](tag,“Entries”){
def id=列[Int](“id”,O.PrimaryKey,O.AutoInc)
def title=列[字符串](“标题”)
定义内容=列[字符串](“内容”)
def publishedDate=列[日期](“发布日期”)
def views=列[Int](“视图”)
覆盖def*=(id、标题、内容、发布日期、视图)(Entry.tuple、Entry.unapply)
}
val entries=TableQuery[entries]
我的问题是:
def byId(id: Rep[Int]) = for (entry <- entries if entry.id === id) yield entry.first
val entryById = Compiled(byId _)
def get(id: Int): Option[Entry] = db.Schema.entryById(id).result.run(DB)
def byId(id:Rep[Int])=for(条目方法first
和fistOption
在slick 3.0.0中被删除。使用head
或headOption
方法first
和fistOption
在slick 3.0.0.0中被删除。使用head
或headOption
您可能正在使用java.util.Date
。我想java.sql.Date
和java.sql.Timestamp
是开箱即用的,但不支持java.util.Date
您可以通过切换到java.sql.Date
轻松地解决这个问题,或者您可以创建一个脚本来告诉slick如何使用它
implicit val javaUtilDateColumnType = MappedColumnType.base[java.util.Date, java.sql.Date](
ud => new java.sql.Date(ud.getTime), sd => new java.util.Date(sd.getTime)
)
您可能正在使用java.util.Date
。我认为java.sql.Date
和java.sql.Timestamp
是开箱即用的,但不支持java.util.Date
您可以通过切换到java.sql.Date
轻松地解决这个问题,或者您可以创建一个脚本来告诉slick如何使用它
implicit val javaUtilDateColumnType = MappedColumnType.base[java.util.Date, java.sql.Date](
ud => new java.sql.Date(ud.getTime), sd => new java.util.Date(sd.getTime)
)