2

要件には複数の親と複数の子を含めることができるため、それ自体に対して多対多の関係を持つテーブルを持つテーブルに問題があります。基本的に、NetBeans ウィザードを使用してデータベースからエンティティを作成しましたが、それ以外はすべて正常に動作しているようです。しかし、この親子関係の単体テストを行うと、失敗し始めました。基本的に、子を要件に追加すると、その子は親を子として持つことになります。

同じキーを指す2つの列を持つ JoinTable に何らかの形で関連していると思います。

これをマッピングする関連エンティティ コードは次のとおりです。

@JoinTable(name = "requirement_has_requirement", joinColumns = {
    @JoinColumn(name = "requirement_id", referencedColumnName = "id"),
    @JoinColumn(name = "requirement_version", referencedColumnName = "version")}, inverseJoinColumns = {
    @JoinColumn(name = "parent_requirement_id", referencedColumnName = "id"),
    @JoinColumn(name = "parent_requirement_version", referencedColumnName = "version")})
@ManyToMany
private List<Requirement> requirementList;
@ManyToMany(mappedBy = "requirementList")
private List<Requirement> requirementList1;

データベース設計

必要な場合は、 https://javydreamercsw@bitbucket.org/javydreamercsw/validation-managerからコードを取得できます。

編集 実際には機能しないため、質問に答えるのは困難です。理論的には、requirementList には子があり、requirementList1 は関係の親である必要があります。

子供を追加しようとすると、次のようにします。

requirement.getRequirementList().add(requirement2);
<Persist requirement here>

2 つの要件が適切で有効なエンティティであると仮定します。

4

1 に答える 1