在Grails中,如何获取鉴别器值?
我有一门课是这样的:在Grails中,如何获取鉴别器值?,grails,grails-2.0,discriminator,Grails,Grails 2.0,Discriminator,我有一门课是这样的: class Apple extends Fruit { static mapping = { discriminator "AppleType" } } 有没有办法在控制器/视图中获取此鉴别器值?您可以检查域类与类的映射。例如: def mapping = GrailsDomainBinder.getMapping(Apple) println mapping.discriminator 作为Sergio答案的补充,从2.3开始,Grai
class Apple extends Fruit {
static mapping = {
discriminator "AppleType"
}
}
有没有办法在控制器/视图中获取此鉴别器值?您可以检查域类与类的映射。例如:
def mapping = GrailsDomainBinder.getMapping(Apple)
println mapping.discriminator
作为Sergio答案的补充,从2.3开始,
GrailDomainBinder
不再将getMapping()
方法作为静态方法。您必须实例化一个GrailDomainBinder
def mapping = new GrailsDomainBinder().getMapping(Apple)
println mapping.discriminator
我以前用过这个黑客。在查询鉴别器列的基类上创建派生属性
static mapping = {
fruitType formula: "class" // discriminator column defaults to 'class'
}
String fruitType
这将添加一个Fruchtype属性,该属性在每次从数据库中提取类时设置
在从数据库中提取属性之前,该属性将为空。
如果更改鉴别器列,只需相应地更改公式即可
static mapping = {
discriminator column: "custom_column_name"
fruitType formula: "custom_column_name"
}
String fruitType