(Quick Reference)

indexColumn

Purpose

Customizes the index column definition of an indexed collection such as a List or Map

Examples

class Neo {

static hasMany = [matrix: Integer]

static mapping = { matrix indexColumn: [name: "the_matrix", type: Integer] } }

def neo = new Neo()
neo.matrix = [(1): 30, (2): 42, (3): 23]
neo.save(flush: true)

Description

Usage: association_name(indexColumn:map)

Arguments:

  • name - The name of the column as a String
  • type (optional) - The Hibernate type.
  • sqlType (optional) - The underlying SQL type
  • enumType (optional) - The enum type in for type-safe Enum properties. Either ordinal or string.
  • index (optional) - The index name
  • unique (optional) - Whether it is unique
  • length (optional) - The length of the column
  • precision (optional) - The precision of the column
  • scale (optional) - The scale of the column

By default when mapping an indexed collection such as a Map or List the index is stored in a column called association_name_idx which is an integer type in the case of lists and a String in the case of maps. You can alter how the index column is mapped using the indexColumn argument:

static mapping = {
    matrix indexColumn: [name: "the_matrix", type: Integer]
}