# column

## Purpose

Customizes a column definition

## Examples

    static mapping = {
            currency column: "currency", sqlType: "char", length: 3
        }

## Description

Usage: `property_name(map)`

Arguments:

- `column` - The name of the column as a String
- `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 or not
- `length` (optional) - The length of the column
- `precision` (optional) - The precision of the column
- `scale` (optional) - The scale of the column

By default GORM uses the property name and type to automatically work out a how to map a particular domain property onto the database. For example a String property is typically mapped onto a varchar(255) column. You can customize these using a method that matches the property name and passing the necessary column configuration arguments:

    static mapping = {
            currency column: "currency", sqlType: "char", length: 3
        }

If you are using a Hibernate type that requires multiple column definitions you can use the `column` method to define each column:

    static mapping =  {
        amount type: MonetaryUserType, {
            column name: "value"
            column name: "currency", sqlType: "char", length: 3
        }
    }