考虑两个域类;工作和报价。
一个工作有很多报价,但一个工作也有一个接受的报价。接受的报价可以为空,并且只有在用户接受特定报价后才应设置。我将关系映射如下(为了说明而简化)。
class Job {
String title
Quote acceptedQuote
}
class Quote {
Job job
BigDecimal quoteAmount
}
结果表正是我所需要的(至少在美学上),但是当我去保存报价时问题就出现了。根据我的代码中的逻辑,使用 jobId 成功保存了报价,但不幸的是,报价的 id 作为接受的报价保存在 Job 表中。有没有办法阻止这种级联关联?保留 Quote 的代码相当基本,如下所示;
def quoteInstance = new Quote(job: jobInstance, quoteAmount: amount)
if (quoteInstance.save(flush: true)) {
render view: 'show', model: [quoteInstance: quoteInstance]
break
}
显然,jobInstance 被传递给 Quote 构造函数以将关联保存在 Quote 表中,但我不知道如何防止引用 Id 作为接受的报价保存到作业表中。也许我使用的 GORM 策略不能满足这些要求?
任何帮助将非常感激。