【发布时间】:2019-08-04 17:22:38
【问题描述】:
我正在尝试这样做(在 Play Framework 上):
db.run(users.filter(_.id === id).map(_.deleted).update(Option(DateTime.now)))
但是它抛出了一个编译错误:
找不到匹配的形状。 Slick 不知道如何映射给定的 类型。可能的原因: Table[T] 中的 T 与您的 * 不匹配 投影,您在查询中使用不受支持的类型(例如 scala 列表), 或者您忘记将驱动程序 api 导入范围。要求等级: slick.lifted.FlatShapeLevel 源类型:slick.lifted.Rep[Option[org.joda.time.DateTime]] 解包类型:T 包装类型:G
Slick 3.0.3 版本。 我该如何解决这个错误?
class UserTable(tag: Tag) extends Table[User](tag, "user") {
def id = column[Int]("id")
def name = column[String]("name")
def age = column[Int]("age")
def deleted = column[Option[DateTime]]("deleted")
override def * =
(id, name, age, deleted) <> ((User.apply _).tupled, User.unapply)
}
case class User(
id: Int = 0,
name: String,
age: Int,
deleted: Option[DateTime] = None
)
【问题讨论】:
标签: scala playframework slick