(Quick Reference)

id

Purpose

Customizes the way to identifier for a domain class is generated

Examples

class Book {
    static mapping = {
        id generator:'hilo', params:[table:'hi_value',column:'next_value',max_lo:100]
    }
}

Description

Usage: id(map)

Arguments:

  • generator (optional) - The name of the generator to use. Can be increment, identity, sequence, hilo, seqhilo, uuid, guid, native, assigned, select, foreign or sequence-identity. See Hibernate reference documentation for more information.
  • composite (optional) - Takes a list of property names to use that form the composite identifier
  • name (optional) - The property name to use as the identifier
  • params (optional) - Any parameters to pass to the defined identity generator
  • column (optional) - The column name to map the identifier to. The remaining column definition properties are also available.

By default GORM uses the native strategy to generate a database identifier for each entity. You can alter this with the id methods generator argument:

static mapping = {
    id generator:'hilo', params:[table:'hi_value',column:'next_value',max_lo:100]
}

You can also use the same method to define a composite identifier:

static mapping = {
    id composite:['title', 'author']
}

Or change the name of the property that defines the identifier:

static mapping = {
    id name:'title'
}

You can also alter the column definition:

static mapping = {
    id column:'book_id', type:'integer'
}

See the section on Custom Database Identity in the user guide for more information.