Grails新的Domain对象,其属性映射没有设置属性

时间:2015-02-06 13:52:06

标签: grails grails-2.3

编辑:根据我的回答,这似乎由#34; grails clean"修复。你沮丧地敲打着你的头,有时你会忽略这一点。

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

abstract class Company {

String name
...
}

以及与以下相似的多个孩子都有不同的"所有者"对象。每个具体类在数据库中都有自己的表。

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 = companyType 在创建对象之后它可以工作,但是有一些我无法理解的东西。

编辑:grails版本是2.3.11

1 个答案:

答案 0 :(得分:2)

有时你会把注意力集中在一个问题上,你不要退后一步......也许我需要做一个完整的“grails clean”......

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