1

次のドメイン構造があるとします。

Book {
    static hasMany = [tags: Tag]
}

Tag {
    String name
}

Bookこの本のタグのいずれかを含む他の本を見つけることができる方法を見つけようとしています。

私はもう試した:

Book.findAllByTagsInList(myBook.tags)

しかし、予想どおり、「List in List」クエリは必要な結果を生成していません。

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 に答える