我在Play 2.2应用程序中对数据库进行了以下sql查询:
SQL("SELECT t.id, t.field1, t.field2 from table1 t WHERE t.field1 = {param1}")
.on("param1" -> param1)()
.map {
case ???
}.toList
此请求可以返回:
field2
为NULL
field2
为NOT NULL
我该如何处理这些案件?我只知道如何处理单个列:
//...
.map {
case Row(field1: Option[String]) => field1
}.toList
答案 0 :(得分:1)
使用行解析器,在此处记录:
http://www.playframework.com/documentation/2.2.x/ScalaAnorm
例如:
val results: List[(Int, Int, String)] =
SQL("SELECT t.id, t.field1, t.field2 from table1 t WHERE t.field1 = {param1}")
.on("param1" -> param1)()
.as(int("t.id") ~ int("t.field1") ~ get[Option[String]]("t.field2") map(flatten) *)
.toList