2014-04-10 2 views
0

내 테이블 :slick2에 쿼리 목록을 만드는 방법은 무엇입니까?

case class Subject(id: Int, name:String, describe: String, sub_resource:String, addId:Long, recommand:Int, commentsum :Int, commentnumber: Int, userId: Int) 
class Subjects(tag: Tag) extends Table[Subject](tag, "Subject") { 
    def id=column[Int]("ID", O.PrimaryKey) 
    def name=column[String]("Name") 
    def describe=column[String]("describe") 
    def sub_resource=column[String]("Resource") 
    def keywords=column[String]("Keyword") 
    def addID=column[Long]("Address") 
    def recommandrate=column[Int]("Recommand") 
    def commentsum=column[Int]("Sum_of_rate") 
    def commentnumber=column[Int]("Rate_number") 
    def userId=column[Int]("owner") 
    def uniqueName = index("idx_grp_name", name, unique = true) 
    def * = (id, name,sub_resource,keywords, addID, recommandrate, commentsum, commentnumber,userId)<> (Subject.tupled, Subject.unapply) 
    def sub_res=foreignKey("sub_res_FK", sub_resource, resource)(_.link) 
    def sub_address=foreignKey("sub_add_FK", addID, address)(_.id) 
    def sub_user=foreignKey("sub_user_FK", userId, user)(_.id) 
} 
val subject = TableQuery[Subjects] 

나는 목록 이름이 "USA"와 "중국"를 포함 얻을 원하는 :

어떻게 필터를 작성하고 이름, 사용자 ID 나열하고 설명하기 위해?

내가 subject.filter (...)를 사용하려면 .....

답변

0

당신은 이름, userId를로 변환하는 필터 (미국과 중국에 필터하기 위해) 및지도 모두 필요하고, 결과로 (검증되지 않은)

subject.filter(i => i.name === "USA" || i.name === "China") 
     .map(i => (i._2, i._10, i._3) 

같은 뭔가를 당신이 ._ [인덱스] 거시기와 함께 필드에 액세스 할 튜플의 목록입니다 decribe

[업데이트] 내가 볼 수 없습니다 모든 분야 당신의 def *에 있습니다 = ... 그래서 그것도 뭔가보고 싶은데

편집자 : cvogt : 구문을 수정했습니다. ===를 제외하고는 Scala 콜렉션을 사용하는 것과 같습니다.

관련 문제