# batchSize

## Purpose

Customizes how many results are fetching during lazy loading.

## Examples

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

## Description

Usage: `batchSize(integer)`

Given a lazy association where an `Author` has many `Books`, GORM will perform one query to get a hold of the `Author` and then an additional query for each associated `Book`. This is what is known as the N+1 problem and can often be worked around by using a join query. However, joins can be expensive.

Batch fetching is an optimization of lazy loading so that if, for example, you set a `batchSize` of 10 and you have an `Author` that has written 30 books, instead of 31 queries you get 4 (1 to fetch the `Author` and then three batches of 10):

    static mapping = {
    	batchSize 10
    }

You can also configure `batchSize` on a per association basis:

    class Author {
    	static hasMany = [books:Book]
    	static mapping = {
    		books batchSize: 10
    	}
    }