我有一个对象Job
,它被子类化为许多jobTypes。 Job
类引用了许多其他工作:
class Job {
static hasMany = [related: Job, ...]
static mappedBy = [related:'related']
...
}
这会生成一个查找表JOB_RELATED
,用于保存作业之间的引用。
当我创建一个名为(例如)Job
的单独的(不扩展的Subcontractor
)域对象时,会出现问题。我偶然也有一个名为SubcontractorSomething
的作业类型
class Subcontractor {
...
}
class SubcontractorSomething extends Job {
...
}
现在,当我调用我的方法添加相关作业时,一切正常(在调试器中,对象使用相关作业更新)并且没有抛出错误,但JOB_RELATED
表未更新!
def updateRelated = {
jobInstance.properties = params//this adds the job to related as expected
if (!jobInstance.hasErrors() && jobInstance.save(flush: true, validate:false)) {
flash.message = "Yea! It Worked"//object is good and debugger shows the relation
redirect(action: "show", id: jobInstance.id)
}
else {
render(view: "addRelated", model: [jobInstance: jobInstance])
}
}
呈现重定向页面时,不会显示新的相关作业。此外,数据库中的表不会更新。
我已经通过删除SubcontractorSomething
类进行了实验。删除后,一切都按预期工作。我还添加了课程,但名字不同。在这种情况下,一切都按预期工作。但是,每当我添加一个名为Subcontractor + anything
的类时,映射都会以某种方式被破坏,并且表将不会更新。所以,我的问题是:
我一直无法找到这样的功能,但我知道Grails做的就像这样(即XYZController)