编辑:根据我的回答,这似乎由#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
答案 0 :(得分:2)
有时你会把注意力集中在一个问题上,你不要退后一步......也许我需要做一个完整的“grails clean”......
清理和重新编译似乎是我的答案。