我是斯卡拉和浮油的新手。对于项目模板,我使用激活器并从此https://github.com/cdiniz/play-slick-rest#master下载光滑的模板。 它提供BaseDAO类和CRUD方法。 让我困惑的是,有这样的功能
def deleteByFilter[C : CanBeQueryCondition](f: (T) => C): Future[Int] = {
db.run(tableQ.withFilter(f).delete)
}
当我使用
调用方法时suppliersDAO.deleteByFilter(_.name== nameValue)
根本没有日志,没有抛出异常或任何消息但没有删除任何数据。
我也尝试将此方法与此
一起使用suppliersDAO.deleteByFilter(_.name === nameValue)
但是编译器说
ambiguous implicit values:
both value BooleanColumnCanBeQueryCondition in object CanBeQueryCondition of type => slick.lifted.CanBeQueryCondition[slick.lifted.Rep[Boolean]]
and value BooleanOptionColumnCanBeQueryCondition in object CanBeQueryCondition of type => slick.lifted.CanBeQueryCondition[slick.lifted.Rep[Option[Boolean]]]
match expected type slick.lifted.CanBeQueryCondition[Nothing]
我已在此处阅读了光滑的文档http://slick.lightbend.com/doc/3.1.0/queries.html,并发现使用过滤器的方式是obj.field === param
。我该如何使用该功能?如何创建一个将T
(SuppliersTable)转换为C
CanBeQueryCondition的函数?
抱歉,我被困了几天。不知道从哪里开始。