たとえば、 salesOrderエンティティとSalesOrderItemなどの2つのエンティティ間に関係があるかどうかを知りたいのですが、1対1の関係で それらを永続化する必要があります。つまり、順序と関係を維持する必要がありますか、または永続化と最初のたとえば、受注明細から開始し、受注よりも開始します。これは単なる例です。JPAとの永続化中に関係を無視し、関係を参照する必要なしにオブジェクトを永続化する方法があるかどうかを知りたいのですが、もちろん外部キーがある場合は一度に提供してください
1 に答える
一般に、次のようにそれらを永続化する必要があります。
2つのエンティティ間のすべてのリンクを確立します。子が親を参照する場合は、その参照を設定します。親が子を参照する場合は、その/それらの参照を設定します。
2つのエンティティを永続化します。ある(親)が別の(子)を参照している場合、関係にマークを付けて
Cascade.PERSIST
、永続化操作中に参照を追跡できるようにすることができます。この場合、永続化する必要があるのは1つだけです。
あなたは、「永続化を分割する方法であり、最初に、たとえば、販売注文アイテムから開始し、販売注文よりも開始する」と質問しました。アイテムは通常、注文を含むものを参照するため、注文前にアイテムを永続化する合理的なシナリオを想像することは困難です。あなたが問題についてほとんど理解していない状態でこの種の質問をしているということで、私はあなたがそれらがあなたのために働くことを許すかもしれない(または許さないかもしれない)例外に対処する準備ができていないという立場を取ります。適切な慣行に固執するのが最善です。
List
注文に子アイテムまたはMap
の子アイテムが含まれている場合でも、アイテムエンティティに注文への特定の参照が含まれている限り、最初に注文を作成する(@OneToManyの「1」)ことが適切な場合があります。特定の「作業単位」(エンティティマネージャーセッション)では、追加の子を追加/作成および永続化するときに、親のリスト/マップを更新する必要があります。