光滑 - 如果列为空则过滤行

BAR*_*BAR 10 scala slick slick-2.0

如果列为空,如何在Slick中过滤行?

val employees = Queryable[Employees]

// Error
val query = employees.filter( _.terminationDate == Nil )
Run Code Online (Sandbox Code Playgroud)

可能需要注意的是

terminationDate: Option[String]
Run Code Online (Sandbox Code Playgroud)

我正在使用直接嵌入.

End*_*Neu 16

Slick有自己检查列中空值的原因:

val query = employees.filter(_.terminationDate.isNull)
Run Code Online (Sandbox Code Playgroud)

相反的是isNotNull.

或者在较新版本的Slick中:

val query = employees.filter(_.terminationDate.isEmpty)
Run Code Online (Sandbox Code Playgroud)

val query = employees.filter(_.terminationDate.isDefined)
Run Code Online (Sandbox Code Playgroud)

  • @CharlieBrown它仍然应该工作 - 只要你的列被定义为`column [Option [SomeType]]`而不是`column [SomeType]`.我认为`isEmpty`和`isDefined`只在`Rep [Option [_]]类型的列上定义. (3认同)