在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