我有一個簡單的類歌曲,對此我會將部分標籤:Grails中找到許多域對象一對多的關係,與列表作爲參數
class Song {
String title
static hasMany = [tags:Tag]
}
的話,我想能夠找到具有標籤指定列表中的所有歌曲,例如,這將是這樣的:
List<Song> results = Song.findAll("where tags contains ?", [myTagList]);
舉例來說,如果我有:
a Song S1 with tags T1
a Song S2 with tags T1 T2 T3
a Song S3 with tags T1 T3
a Song S4 with tags T1 T2 T3 T4
然後我執行我的查詢myTagList containing T1, T2, T3
,然後該呼叫將返回S2 and S4
。
有沒有執行此任何有效的方法?
你知道這個調用的複雜性是什麼嗎?例如,如果我有幾千首歌曲,我想要避免那些抓住歌曲整個列表的電話,然後迭代它們以找到匹配。 –
對不起,我一直在嘗試做更多的研究,但是這應該返回給你一個標籤匹配的歌曲列表,使用不含任何grails迭代的sql語句。 – bschipp
你有沒有試過你的解決方案?也許我做了錯誤的事情,但我試圖在我身邊,它顯然不工作。所期望的是一個簡單的類屬性(不應該是一個列表)作爲第一個參數,以及我們想要查找屬性的列表。在我的情況,這是完全相反的(我希望「標籤」包含myTagList),在兩個參數列表中。 來自Grails文檔的示例:'in'(「age」,[18..65]) –