【发布时间】:2013-12-24 13:50:03
【问题描述】:
我有一个选择代码:
val requestId = 123
DB.withConnection { implicit con =>
SQL("SELECT my_field FROM my_table WHERE some_id = {request_id}").onParams(requestId)()
.collect {
case Row(myField: Option[String]) =>
myField match {
case Some(x) =>
// ???
case None => //there is no such a record?
}
}
}
my_field 可以是NULL。因此有 3 个选项:
-
WHERE some_id = request_id记录不存在 - 记录
WHERE some_id = request_id存在并具有值 - 记录
WHERE some_id = request_id存在并且是NULL
如何区分 1 和 3?
【问题讨论】:
-
当行不存在时是否收集甚至迭代?
-
不,不会有行,所以 collect 将返回一个空列表/序列或它返回的任何内容。
-
@SteveSowerby,在什么情况下?
标签: scala playframework anorm