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

标签 grails grails-domain-class

我有域类 => 多对多并使用 addTo 将它们关联起来。

class Books {
    static belongsTo = Author
}

class Author {
    static belongsTo = Book
    static hasMany = [books: Book]
}

Controller :
author.addToBooks(mybook).save()

=> 我想检查是否已将 mybook 添加到作者。是否有一种方法可以检查这本书是否已添加到作者(希望不使用 findBy)?就像是
if (author.isAdded(mybook))   

谢谢。

最佳答案

默认定义为 hasMany将使用 java.util.Set .由于 Set 是一个不包含重复项的集合,这意味着您可以调用 author.addToBooks()使用同一本书,并且不会多次添加 - 所以没有必要检查一本书是否存在。

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

关于grails - 查找是否添加到域类中 - 不使用 findBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088635/

相关文章:

Grails 3 领域类索引 TTL 按环境

grails - 如何自动注销选择删除其帐户的登录用户?

grails - 如何在Grab功能测试中切换引导选项卡?

hibernate - 使用左联接的条件不会加载所有具有多个关联的条件

grails - Grails Spring Security插件类的首选软件包

unit-testing - Grails:具有域类的单元测试 Controller 方法

mysql - Groovy SQL everyRow 格式输出

grails - 如何覆盖 GORM (Grails) 中的 DomainClass.list()

Grails:一对多关系的排序顺序不起作用

grails - 如何通过其他grails应用程序重用grails应用程序(代码和数据)?