(快速参考)

fetchMode

用途

允许配置关联的抓取策略。默认为 lazy: true,其他选项为 lazy: false 或 fetch: 'join'

示例

class Author {

    String name

    static hasMany = [books: Book]

    static mapping = {
        books lazy: false
    }
}

在此示例中,book 关联应急切抓取

描述

默认情况下,Grails 中的关联是延迟抓取的(首次从集合中访问记录时,才从数据库中读取每条记录)。在大多数情况下这样做是有道理的,但在以下情况下,应该使用急切抓取:你需要抓取的记录数量较少和/或需要反复加载延迟关联(导致 N+1 查询)。

在急切抓取和一对多关联的情况下,当实例和关联被加载(急切地)时,它们将被初始化。但是,在使用急切抓取时应该小心,因为过于急切可能会导致整个数据库被加载到内存中!

有关详细信息,请参阅用户指南中的有关急切和延迟抓取的部分。