int 主キーを持つエンティティ LearningUnit があります。実際には、それ以上のものはありません。
Entity Concept はそれと次の関係があります。 @ManyToOne @Size(min=1,max=7) private LearningUnit learningUnit;
Concept のコンストラクターで、最大の主キーを持つ LearningUnit を取得する必要があります。LearningUnit がまだ存在しない場合は、インスタンス化します。次に、this.learningUnit を取得/インスタンス化に設定します。
最後に、try-catch ブロックで Concept の空のコンストラクターを呼び出して、entitymanager にカーディナリティ チェックを実行させます。例外がスローされた場合 (すでに別の 7 つのコンセプトが同じ LearningUnit を参照している場合に例外が発生すると予想されます。その場合、新しいより大きな主キーを使用して新しい LearningUnit をインスタンス化します。
また、上記で概説したアルゴリズムに明確な落とし穴がある場合は、それも指摘してください。