0
我有三個表:用戶,組和users_groups。組和用戶之間存在多對多的關係,因爲一個用戶可以屬於多個組,並且一個組由多個用戶組成。動態創建的滑動查詢
我有一個GET查詢像/組?名稱= X &用戶= Y
從它在Y用戶我是從組搜索與名稱,比如X,但棘手的部分是搜索的組不屬於。
def findUserGroups(id: Long) = {
users_groups.filter(ug => ug.userID === id)
}
,從我得到的所有用戶所屬的組,那麼我做這個
var queries : List[Query[GroupsTable, GroupsTable#TableElementType, Seq]]= List[Query[GroupsTable, GroupsTable#TableElementType, Seq]]()
userGroups map { userGroup =>
val query : Query[GroupsTable, GroupsTable#TableElementType, Seq] = groups.filter(_.id =!= userGroup.group.get)
queries = query :: queries
}
如果我調用println userGroup表示它給了我正確的組。
最後,我一直在試圖工會
def findGroupByNameSynthFunction(name: String, queries: List[Query[GroupsTable, GroupsTable#TableElementType, Seq]]) = {
val query1 = groups.filter(g => g.name like ("%" + name + "%"))
val unionQuery: Query[GroupsTable, GroupsTable#TableElementType, Seq] = query1
queries map { query =>
unionQuery ++ query
}
unionQuery
}
我執行它
val found = GroupsTable.findGroupByNameSynthFunction(name, queries).run
,但我得到的所有組反正。
有人可以解釋我做錯了什麼! :)