我的案例类
case class Entry(id: Int, title: String, content: String,
publishedDate: Date, views: Int)
Schena
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]
我的查询:
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)
当我跑步时出现此错误:找不到匹配的形状。光滑不知道 如何映射给定的类型。
播放:2.4 斯卡拉:2.11.6 光滑:3.1.1
编辑:我还得到了#34;值首先不是db.Schema.Entries&#34;的成员。以及&#34;结果&#34;
的类似错误答案 0 :(得分:1)
方法first
和fistOption
将在光滑的3.0.0中删除。使用head
或headOption
。
答案 1 :(得分:1)
您可能正在使用java.util.Date
。我认为java.sql.Date
和java.sql.Timestamp
支持开箱即用,但不支持java.util.Date
。
您可以通过切换到java.sql.Date
轻松解决此问题,或者您可以创建一个MappedColumnType来告诉您如何使用它。
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)
)