2 つのドメイン クラスを考えてみましょう。仕事と見積もり。
ジョブには多くの見積もりがありますが、ジョブには受け入れられた見積もりもあります。受け入れられた見積もりは null 可能であり、特定の見積もりがユーザーによって受け入れられた場合にのみ設定する必要があります。次のように関係をマッピングしています (説明のために単純化しています)。
class Job {
String title
Quote acceptedQuote
}
class Quote {
Job job
BigDecimal quoteAmount
}
結果のテーブルはまさに私が必要とするものです (少なくとも審美的には) が、Quote を保存すると問題が発生します。Quote はコードのロジックに従って jobId で正常に保存されますが、残念ながら、Quote の ID は AcceptedQuote として 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戦略は、これらの要件を満たさないのでしょうか?
どんな助けでも大歓迎です。