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"
}
}