如果我有一个名为Artist的课程,它有很多歌曲:
class Artist {
String name
static hasMany = [songs : Song]
}
class Song {
String title
Integer duration
}
我想知道哪些艺术家唱了一个标题列表。例如,我想知道唱Hello
,My Love
和Yesterday
(一个字符串数组)的艺术家。这样做的最佳方式是什么?
我尝试使用criteria和findAll,但无法确定哪种方式最好。有什么想法吗?
答案 0 :(得分: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]