在Slick中对ANDing / ORing /分组查询过滤器

时间:2014-04-08 17:17:36

标签: slick

给定一个存储可以为空的过期日期的表,我想找到所有记录,其中包括(1)空过期日期或(2)尚未过期的过期日期。到目前为止我得到的是:

val results = Query(TableClass)
  .filter(_.expires > new Timestamp(DateTime.now().getMillis()))
  .list

查找具有当前到期日期的所有记录,但错过了所有具有空日期的记录。如何告诉Slick这个过滤器应该只适用于非空记录? ColumnExtensionMethods中似乎没有任何逻辑运算符或分组结构。

1 个答案:

答案 0 :(得分:0)

val results = Query(TableClass)
  .filter(r => r.isNull || r.expires > new Timestamp(DateTime.now().getMillis()))
  .list

https://github.com/slick/slick/blob/master/src/main/scala/scala/slick/lifted/ExtensionMethods.scala#L104