查找是否添加到域类中 - 不使用findBy

iba*_*alf 0 grails grails-domain-class

我有域类=>多对多,并使用addTo关联它们.

class Books {
    static belongsTo = Author
}

class Author {
    static belongsTo = Book
    static hasMany = [books: Book]
}
Run Code Online (Sandbox Code Playgroud)

控制器:

author.addToBooks(mybook).save()
Run Code Online (Sandbox Code Playgroud)

=>我想检查mybook是否已添加到作者.是一种检查书籍是否已添加到作者(希望不使用findBy)的方法吗?就像是

if (author.isAdded(mybook))   
Run Code Online (Sandbox Code Playgroud)

谢谢.

doe*_*eri 6

默认情况下定义为hasMany将使用a java.util.Set.由于Set是一个不包含重复项的集合,这意味着您可以author.addToBooks()使用相同的Book 进行调用,并且不会多次添加它 - 因此不必检查是否存在书籍.

但是,要检查Set中的Book,您可以使用 author.books.contains(book)