2016-03-13 1 views
0

Я новичок в slick, и проблема беспокоит меня. Я хочу, чтобы запросить таблицу с именем прикрепить, и найти attach_id, который содержится в массиве b, который является нормальным Scala массив:sql query в play-slick, с функцией вроде содержит

val attaches: TableQuery[AttachTable] = TableQuery[AttachTable] 
val b = Array[Int](1,2,3) 

// This query works well, but I actually need the attach_id that in the array b 
def query = for { 
    a <- attaches if (a.attach_id === 1) 
} yield (a.url) 

// If I replace it like this, it doesn't work, and I don't know why 
def query = for { 
    a <- attaches if (b.contains(a.attach_id)) 
} yield (a.url) 

// This also failed, because b is Array[Int] 
def query = for { 
    a <- attaches if (a.attach_id in b) 
} yield (a.url) 

Может кто-нибудь мне помочь ???

+0

http://slick.typesafe.com/doc/3.1.1/sql-to-slick.html?highlight=inset#id21 'Метод .в ожидает, суб запроса. Для коллекции Scala в памяти вместо этого можно использовать метод .inSet. « – danielnixon

+0

да, это работает – user1443502

ответ

1

Применения

def query = for{ 
    a<-attaches if a.attach_id inSetBind(b) 
} yield (a.url)