Slick withfilter示例

时间:2016-07-31 12:43:32

标签: scala slick

我是斯卡拉和浮油的新手。对于项目模板,我使用激活器并从此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的函数?

抱歉,我被困了几天。不知道从哪里开始。

0 个答案:

没有答案