class Book {
...
static mapping = {
batchSize 10
}
}
batchSize
目的
自訂在延遲載入期間擷取多少結果。
範例
說明
用法: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
}
}