【发布时间】:2018-11-09 21:48:34
【问题描述】:
我正在尝试使用动态过滤在 slick 中创建一个查询。我有一个Seq[(String, String)],其中元组的第一个元素是列名,而第二个元素是过滤器的值。
在伪代码中,我想做这样的事情:
val filters: Seq[(String, String)]
val query = filters.foldLeft(entityTable) {
case(query, (column, value)) => query.filter(select(column) === value)
}
我已经有一个函数def select(name: String): Rep[_],它从它的名字开始返回列Rep,效果很好,但我不知道如何获得制作===函数(或其他比较函数)所需的所有隐式) 工作。
有没有办法在 slick 中进行这样的动态过滤?
【问题讨论】:
-
如果您尝试使用
query.filter(x => check(x, column, value))方法,可能会更容易。