属性 地图未设置 属性 的 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"......
清理并重新编译似乎是我的答案。
编辑:根据我在下面的回答,这似乎已被 "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"......
清理并重新编译似乎是我的答案。