2013-06-26 1 views

답변

4

을 내가 당신이 이런 식으로 원하는 것을 달성 할 수 있다고 생각 :

(for(a <- ADB) yield a.forSelect).list 

stefan.schwetschke가 게시 한 것과 다른 점은 인스턴스 a을 을 참조하기 위해 ADB 개체 자체에서 액세스하는 대신 사용하고 있다는 것입니다.

+0

그것은 작동합니다! 감사! – 1esha

0

그냥

...map(ADB.forSelect) 

또는

for(...) yield ADB.forSelect 

이 (가) 나를 위해 일한 다음 시도 :

import scala.slick.driver.H2Driver.simple._ 
import Database.threadLocalSession 


object ADB extends Table[(Long, String)]("a") { 
    def id = column[Long]("id", O.PrimaryKey) 
    def name = column[String]("name") 
    def * = id ~ name 

    def forSelect = id ~ name 
} 

Database.forURL("jdbc:h2:mem:test1", driver = "org.h2.Driver") withSession { 
    (for(a <- ADB) yield ADB.forSelect).list 
} 
+0

답장을 보내 주셔서 감사합니다. 예제와 내 주요 차이점은'BaseDB [A] ("a")'를 확장 한 것입니다. 나는 객체에 매핑을 사용했지만 터플에는 사용하지 않았다. 귀하의 솔루션을 사용하려고하지만 다시 SlickException : Select (TableNode, "id")가 발견되었습니다. 이것은 일반적으로 생성자를 통해 도입하지 않고 "원시"테이블 객체를 쿼리에서 직접 사용하려는 시도로 인해 발생합니다. 어떤 아이디어? – 1esha