(快速參考)

類型

目的

設定特定屬性的 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
    }
}