(快速參考)

batchSize

目的

自訂在延遲載入期間擷取多少結果。

範例

class Book {
    ...
    static mapping = {
        batchSize 10
    }
}

說明

用法:batchSize(integer)

假設有一個延遲關聯,其中一個 Author 有許多 Book 實例,GORM 將對 Author 執行一個查詢,並對關聯的 Book 實例執行其他查詢。這就是所謂的 N+1 問題,通常可以使用連接查詢來解決。然而,連接查詢可能會很耗費資源。

批次擷取是延遲載入的最佳化,因此,例如,如果您設定 batchSize 為 10,而有一個 Author 有 30 本書,您將得到四個查詢(一個針對 Author,三個批次,每個批次有 10 本書),而不是 31 個查詢。

static mapping = {
    batchSize 10
}

您也可以針對每個關聯設定 batchSize

class Author {

    static hasMany = [books: Book]

    static mapping = {
        books batchSize: 10
    }
}