class Content {
...
}
識別符
目的
自訂階層繼承對應中使用的識別符欄位。在使用子類別繼承對應時,沒有作用。
範例
class PodCast extends Content {
...
static mapping = {
discriminator "audio"
}
}
說明
用法:discriminator(string/map)
引數
-
column
(選用) - 儲存識別符的欄位名稱 -
value
- 識別符要使用的值 -
formula
(選用) - 評估類別類型的 SQL 表達式。使用此項或column
,但不可同時使用兩者 -
type
(選用,預設為字串) - Hibernate 類型,用於 where 子句條件,以判斷是否需要用 '
預設情況下,在對應繼承時,Grails 會使用單一表格模型,其中所有類別共用同一表格。識別符欄位用於判斷每列的類型,預設為完整類別名稱。你可以使用 discriminator
方法自訂儲存的內容
class Content {
...
}
class PodCast extends Content {
...
static mapping = {
discriminator "audio"
}
}
你也可以自訂識別符欄位名稱
class Content {
...
static mapping = {
discriminator column: "content_type"
}
}
class PodCast extends Content {
...
static mapping = {
discriminator value: "audio"
}
}
或者,你可以使用公式
class Content {
...
static mapping = {
discriminator value: "1", type: "integer",
formula: "case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end",
}
}
class PodCast extends Content {
...
static mapping = {
discriminator value: "0"
}
}