[英]Scala Play 2.3.0 with Anorm - Can't use Pattern Matching (IntelliJ cannot resolve symbol Row)
我正在IntelliJ IDEA上使用Scala(2.11)和Play Framework(2.3.0)开发应用程序。 我正在使用Anorm从我的数据库(带有MariaDB的MySQL)中检索数据。
这是我的第一个测试应用程序(可以运行):
package controllers
import play.api.mvc._
import play.api.db._
import anorm._
case class Client(id: Int, nom: String, prenom: String)
object Application extends Controller {
def index = Action {
var result: List[(Int, String)] = List()
val sqlQuery = SQL(
"""
select idClient, nameClient from Clients
where idClient = {idClient};
"""
).on("idClient" -> 1)
DB.withConnection { implicit conn =>
result = sqlQuery().map(row =>
row[Int]("IDClient") -> row[String]("NameClient")
).toList
}
Ok(result.toString)
}
}
这很好。 我正确获得了客户的名字。 但是,当我尝试使用模式匹配时,如下所示:
result = sqlQuery().collect {
case Row(idClient: Int, nameClient: String) => idClient -> nameClient
}
IntelliJ给我一个错误,指出它“ Cannot resolve Symbol Row
”。 据我所知,Row是在Anorm库中定义的,SQL也是如此。 将找不到SQL而不是Row是没有道理的...
发生了什么?
anorm.Play 2.3中没有行提取器。 如建议的那样,您可以使用解析器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.