(快速参考)

类型

用途

设置特定数据属性的 Hibernate 类型。

示例

更改为文本类型(CLOB 或 TEXT,取决于数据库方言)

class Book {

    String title

    static mapping = {
        title type: "text"
    }
}

具有多列的用户类型

class Book {
    ...
    MonetaryAmount amount

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

描述

用法:association_name(type:string/class)

Hibernate 将根据正在使用的 Dialect 类中的配置,尝试从基于字段类型的数据库中自动选择合适的数据库类型。但如果需要,可以覆盖默认设置。例如,String 值默认映射到 varchar(255) 列。要存储较大的 String 值,可以使用 text 类型

static mapping = {
    title type: "text"
}

Hibernate 还具有自定义 UserType 实现的概念。在这种情况下,指定 UserType 类。如果 UserType 映射到多列,可能需要指定每个列的映射

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