Hibernate GrailsDomainBinder.getMapping(Doamin)在Grails-3.2.4中为非持久化域返回null

Hibernate GrailsDomainBinder.getMapping(Doamin)在Grails-3.2.4中为非持久化域返回null,hibernate,grails,groovy,gorm,grails3.2.0,Hibernate,Grails,Groovy,Gorm,Grails3.2.0,我有两个域名 class ABC{ String xyz static mapping = { discriminator column: 'ABC_TYPE_ID' } } 及 在Grails 2.5.5中,下面的行可以很好地工作,但在进行了必要的更改之后,它在Grails-3.2.4中不起作用,并给出null Mapping mapping = new GrailsDomainBinder().getMapping(XYZ) //Works fi

我有两个域名

class ABC{

    String xyz

    static mapping = {
        discriminator column: 'ABC_TYPE_ID'
    }
}

在Grails 2.5.5中,下面的行可以很好地工作,但在进行了必要的更改之后,它在Grails-3.2.4中不起作用,并给出null

Mapping mapping = new GrailsDomainBinder().getMapping(XYZ) //Works fine Grails 2.5.5

Mapping mapping = GrailsDomainBinder.getMapping(XYZ) // Giving null in Grails-3.2.4
请帮助我从XYZ域获取映射对象

我的调查结果:

我在application.yml中使用带有注释的#dbCreate:“”的oracle db

在XYZ域中注释static mapWith=“none”后,我得到了映射对象,并且由于#dbCreate:“,相应的表没有在DB中创建


这种方法有什么问题吗?如果是,请向我提供替代解决方案。

在GORM的最新版本中,静态部分已被删除。您需要使用
MappingContext
对象来获取所需内容:

MappingContext mappingContext = .. // can be injected via Spring
Mapping mapping = (Mapping)mappingContext.getPersistentEntity(Foo).mapping.mappedForm

MappingContext mappingContext = .. // can be injected via Spring
Mapping mapping = (Mapping)mappingContext.getPersistentEntity(Foo).mapping.mappedForm