1

给定以下域结构:

Book {
    static hasMany = [tags: Tag]
}

Tag {
    String name
}

我正在尝试找到一种方法,让Book我可以找到包含这本书的任何标签的任何其他书籍。

我试过了:

Book.findAllByTagsInList(myBook.tags)

但正如预期的那样,“列表中的列表”查询没有产生所需的结果。

4

1 回答 1

2

您可以使用标准作为

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])
于 2013-10-08T16:51:07.703 回答