0
我使用下面的代码从一个MySQL表要求项目查询(Account类仅仅是代表数据库中的字段的情况下类)斯卡拉油滑:使用直接嵌入不起作用
val res = Queryable[Account].map(_.name)
val db = Database.forURL("jdbc:mysql://localhost:3306/databasename", driver = "com.mysql.jdbc.Driver", user="username", password="password")
val backend = new SlickBackend(MySQLDriver, AnnotationMapper)
db withSession {
val r=backend.toList(res)
println(r.toString)
}
线
val r=backend.toList(res)
抛出以下异常:
[ToolBoxError: reflective typecheck has failed: ambiguous implicit values: both value StringCanBuildFrom in object Predef of type => scala.collection.generic.CanBuildFrom[String,Char,String] and method conforms in object Predef of type [A]=> <:<[A,A] match expected type T]
可能是什么原因呢?我使用的是Scala 2.10.0-RC1和Slick 0.11.2。
这里顺便Account类的样子:
@table("account")
case class Account (
@column("ID") id: Long,
...
@column("Name") name: String,
...
)
不确定,但尝试“db.withSession {...” – virtualeyes
没有区别:( – Heinzi
不熟悉浮油,但这是什么toList方法?你不能明确地告诉编译器,你期待一个List [Account]?在ScalaQuery上我做了类似list [Foo](someQuery)的事情,其中list是一个辅助方法,它在查询中调用SQ的列表方法,并将其转换为给定的T.不是typesafe,但非常方便。 – virtualeyes