多対多の関係を両方向にマップするには、一方の方向を所有者として定義し、他方の方向を --mappedBy 属性を使用してマッピングを定義する必要があります。
従業員とプロジェクトの典型的な例を挙げると、1 人の従業員が多くのプロジェクトに参加でき、1 つのプロジェクトに多くの従業員を含めることができます。このような双方向の多対多の関係を作成するには、フィールド セット コマンドを使用します。
エンティティを作成します。
entity jpa --class ~.domain.Project
entity jpa --class ~.domain.Employee
関係の所有者を作成します。
field set --class ~.domain.Employee --fieldName projects --type ~.domain.Project
次に、関係の反対側を作成します。
field set --class ~.domain.Project --fieldName employees --type ~.domain.Employee --mappedBy projects
--mappedBy が使用されていない場合、持続性プロバイダーは 2 つの独立した関係があると想定し、結合テーブルに重複した行が挿入されることになります。概念的な双方向の関係があり、データベースに 2 つの異なる結合テーブルがある場合は、2 つの独立したテーブルを維持する必要があるため、--mappedBy を使用しないでください。
最後に、生成されたコードをカスタマイズするには、JPA フォース Luke を使用します 。http://en.wikibooks.org/wiki/Java_Persistence/ManyToManyをご覧ください。