属性 地图未设置 属性 的 Grails 新域对象

Grails new Domain object with property map not setting property

编辑:根据我在下面的回答,这似乎已被 "grails clean" 修复。你沮丧地敲着头,有时你会忽视显而易见的事情。

一段时间以来,我们拥有以下域对象结构:

abstract class Company {

String name
...
}

和多个与以下类似的子项都具有不同的 "owner" 对象。每个具体 class 在数据库中都有自己的 table。

class CompanyChild extends Company {
static belongsTo = [owner:SomeDomain]
...
}

出于各种原因,我将另一个 属性 添加到抽象父级,因此父级现在看起来更像以下内容(CompanyType 是一个枚举):

abstract class Company {

String name
CompanyType companyType
...
}

这一切看起来都很简单。现在在公司服务中,我正在某处这样做:

log.debug("Saving new company type=$companyType")
def company= new Company(name: 'Acme', companyType: companyType, <other properties here>)
log.debug("company object has type=${company.companyType}")

日志显示...

CompanyService Saving new company type=NONPROFIT
CompanyService company object has type=null

这到底是怎么回事? ${company.companyType} 好像真的不应该为空。

如果我添加 company.companyType = 公司类型 创建对象后它可以工作,但有些地方我不明白。

编辑:grails 版本为 2.3.11

有时候你太专注于一个问题,你不会退后一步......也许我需要做一个完整的"grails clean"......

清理并重新编译似乎是我的答案。