(快速參考)

fetchMode

目的

允許組態關聯的提取策略。預設為 lazy: true,其他選項為 lazy: false 或 fetch: 'join'

範例

class Author {

    String name

    static hasMany = [books: Book]

    static mapping = {
        books lazy: false
    }
}

在此範例中,book 關聯應急切提取

說明

預設情況下,Grails 中的關聯會延遲提取(只有當從集合中首次存取記錄時,才會從資料庫中讀取該記錄)。這在大部分情況下都合理,然而,當您有少數記錄要提取和/或重複需要載入延遲關聯(導致 N+1 查詢)時,使用急切提取是有意義的。

在急切提取和一對多關聯的情況下,當實例以及關聯載入時(急切),它們將會被初始化。但是,使用急切提取時應小心,因為過於急切可能會導致您的整個資料庫載入到記憶體中!

有關更多資訊,請參閱使用者指南中關於 急切和延遲提取 的章節。