2012-11-09 3 views
0
나는 MySQL의 테이블에서 항목을 요청하기 위해 다음 코드를 사용

작동하지 않습니다 직접 삽입을 사용하여 쿼리스칼라 슬릭 :

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) 
} 

라인 (Account 클래스는 데이터베이스 필드를 나타내는 경우 클래스입니다)

[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] 

그것에 대한 이유가 될 수 무엇 :

val r=backend.toList(res) 

는 다음과 같은 예외가 발생합니다 ? Scala 2.10.0-RC1과 Slick 0.11.2를 사용하고 있습니다.

@table("account") 
case class Account (
    @column("ID") id: Long, 
    ... 
    @column("Name") name: String, 
    ... 
) 
+0

잘 모르겠지만 "db.withSession {..."시도하십시오 – virtualeyes

+0

차이점을 만들지 마십시오 : ( – Heinzi

+0

slick에 익숙하지 않지만이 toList 메소드는 무엇입니까? 컴파일러에게 예상하고 있다고 명시 적으로 말할 수 있습니까? List [Account]? ScalaQuery에서 list [Foo] (someQuery)와 같은 일을합니다. list는 쿼리에서 SQ의 list 메소드를 호출하고 주어진 T로 캐스트하는 도우미 메소드입니다. typesafe가 아니지만 매우 편리합니다 .... – virtualeyes

답변

0

이이 유형은 MySQL의 유형과 일치하지 않는 의미 : 여기

방법은 계정 클래스는 것 같습니다. ie ID는 Long이 아닌 Int이어야합니다.