给出以下域结构:
Book {
static hasMany = [tags: Tag]
}
Tag {
String name
}
我正在尝试找到一种方法,给定
Book
,我可以找到包含该书中任何标签的其他任何书。我试过了:
Book.findAllByTagsInList(myBook.tags)
但正如预期的那样,“列表中的列表”查询未产生所需的结果。
最佳答案
您可以将条件用作
def books = Book.createCriteria().listDistinct{
tags{
'in'('id', myBook.tags*.id)
}
}
或使用HQL作为
def books = Book.executeQuery("select distinct b from Book as b \
inner join b.tags as tag \
where tag.id in (:tags)",
[tags: myBook.tags*.id])
关于sql - Grails:HasMany交集查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19252444/