私はPerson表とGroup表の間に多対多の関係を持ち、結合表はPersonGroupです。 Personを保存/削除すると、Person, PersonGroup and Group
の表が保存され、削除されます。多対多 - 結合表と1つの表の保存/更新
"Person"と "PersonGroup"テーブルから削除/保存したいだけです。 "Person"のクエリでPersonエンティティに "Group"リストを取得する必要があります。
したがって、基本的に「グループ」は参照テーブルです。これは、グループテーブルの読み取り/更新なしでのみ読み取る必要があります。
どうすればこの問題を解決できますか?
@Entity
@Table(name="Person")
public class Person implements Serializable {
@Id
private long personId;
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name="PersonGroup", [email protected](name="person_id"),
[email protected](name="group_id"))
private List<Group> groups;
}
@Entity
@Table(name="Group")
public class Group implements Serializable {
@Id
private long groupId;
@ManyToMany(mappedBy="groups")
private List<Person> persons;
}
は、グループテーブルに保存されませんが、それはまた、加入テーブルに保存されませんPersonGroup' – Nero
mappedByのjavadocは少し誤解を招くです... 関係を「所有していない」側の結合テーブルをマップし、関係を「所有する」側のmappedByを使用する必要があります。 今のところ、私は休止状態だと思いますグループオブジェクトを保存した場合、ジョイント可能なものを更新してください... addreへの私の回答を編集しますそのこと –