【发布时间】:2016-01-25 07:27:38
【问题描述】:
我尝试使用 anorm 从 mySQL 数据库表中获取结果集。这是我的代码。
package models
import play.api.db._
import play.api.Play.current
import scala.collection.mutable._
import anorm._
import anorm.SqlParser._
case class Brand(id: Int, name: String)
object Brand {
/**
* Parse a Brand from a ResultSet
*/
val simple = {
get[Int]("m_brand.idbrand") ~
get[String]("m_brand.brandName") map {
case id~name => Brand(id, name)
}
}
/**
* Construct the Map[String,String] needed to fill a select options set.
*/
def options: Seq[(String,String)] = DB.withConnection { implicit connection =>
SQL("select * from m_brand order by brandName").as(Brand.simple *).
foldLeft[Seq[(String, String)]](Nil) { (cs, c) =>
c.id.fold(cs) { id => cs :+ (id.toString -> c.name) }
}
}
}
我尝试通过一些实验更改代码但没有成功。
但我得到了这个错误
从标准输出读取: D:\PROJECTS\test\Project_VendorM8\app\models\Brand.scala:69: 类型 不匹配;从标准输出读取:找到: scala.collection.immutable.Nil.type 从标准输出读取:需要: scala.collection.mutable.Seq[(String, String)] D:\PROJECTS\test\Project_VendorM8\app\models\Brand.scala:69: 类型 不匹配;发现:scala.collection.immutable.Nil.type 需要: scala.collection.mutable.Seq[(String, String)] 从标准输出读取: foldLeftSeq[(String, String)] { (cs, c) => foldLeftSeq[(String, String)] { (cs, c) => 从标准输出读取:^
【问题讨论】:
-
使用Anorm 2.5,可以使用
val parser = anorm.Macro.parser[Brand]("m_brand.idbrand", "m_brand.brandName");见cchantep.github.io/anorm/#generated-parsers
标签: scala playframework anorm