(Quick Reference)

cache

Purpose

Enables the configuration of the Hibernate second-level cache.

Examples

class Book {
    …
    static mapping = {
        cache true
    }
}

Description

Usage: cache(boolean/string/map)

Arguments:

  • usage - The cache usage. Can be read-only, read-write, nonstrict-read-write or transactional
  • include (optional) - Whether to include non-lazy associations. Can be all or non-lazy

In order to take advantage of the Hibernate second-level cache you explicitly need to enable caching per domain class. For example:

static mapping = {
    cache true
}

This will configure the domain class to use a 'read-write' cache, but you can configure whatever cache policy is appropriate:

static mapping = {
    cache 'transactional'
}

Or

static mapping = {
    cache usage:'read-only', include:'non-lazy'
}

You can also configure the cache policy on a per association basis:

class Author {
    static hasMany = [books:Book]
    static mapping = {
        books cache: true // or 'read-write' etc.
    }
}

For more information see the section on Caching in the user guide.