(Quick Reference)

type

Purpose

Configures the Hibernate type for a particular property.

Examples

Changing to a text type (CLOB or TEXT depending on database dialect).

class Book {
    String title
    static mapping = {
        title type:"text"
    }
}

User types with multiple columns:

class Book {
    …
    MonetaryAmount amount

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

Description

Usage: association_name(type:string/class)

Hibernate will attempt to automatically select the appropriate type based from a properties java.lang.Class. However, this choice is not always appropriate. For example String values are by default mapped to varchar(255) columns. If you want to store larger String values you can use a text type instead:

static mapping = {
    title type:"text"
}

Hibernate also has the concept of custom UserType implementations. In this case you need to specify the UserType class. If the UserType maps to multiple columns you may need to specify mapping for each column:

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