2012-01-27 55 views
1

一个一对多的关系查询的项目清单。如果我有一个叫艺术家类,其中有许多歌曲:从Grails中

class Artist { 
    String name 
    static hasMany = [songs : Song] 
} 

class Song { 
    String title 
    Integer duration 
} 

我想知道哪个艺术家演唱的标题列表。例如,我想知道唱着HelloMy LoveYesterday(字符串数组)的艺术家。做这个的最好方式是什么?

我试过使用criteria和findAll,但无法真正弄清楚哪个是最好的方法。有任何想法吗?

回答

3

这HQL将工作:

def artists = Artist.executeQuery(
    'select distinct a from Artist a join a.songs song where song.title in (:titles)', 
    [titles: ['Hello', 'My Love', 'Yesterday']]) 

它会返回艺术家列表,但如果有结果只有一个,你可以把它作为artists[0]

+0

AWWWWW YEAHHH IT WORKSS谢谢! :) – 2012-01-27 06:25:44