@Entity
public class Conference {
@ManyToOne
@JoinColumn(name = "host_id")
@JsonManagedReference
private User host;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "PARTICIPANT_CONFERENCE",
joinColumns = @JoinColumn(name = "CONFERENCE_ID_FRK"),
inverseJoinColumns = @JoinColumn(name = "PARTICIPANT_ID_FRK")
)
@JsonManagedReference
private Set<User> participants;
}
@Entity
public class User {
@ManyToMany(
targetEntity = Conference.class,
fetch = FetchType.EAGER,
cascade = CascadeType.REMOVE,
mappedBy = "participants"
)
@JsonBackReference
private Set<Conference> conferenceSet;
@OneToMany(
targetEntity = Conference.class,
mappedBy = "host",
cascade = CascadeType.REMOVE,
fetch = FetchType.EAGER
)
@JsonBackReference
private Set<Conference> conferenceHostSet;
}
JPAを使用していて、OneTOManyフィールドがJPAで更新されないという問題があります。私は会議にホストを追加した場合JPAで1対多フィールドが更新されない
が、ユーザーのホストセットは更新されませんでした。
だから、私はあまりにも、ユーザーのホストセットを更新しようとしました。
Set<Conference> conferences = form.getHost().getConferenceHostSet();
conferences.add(conference);
userRepository.save(form.getHost().setConferenceSet(conferences));
ユーザーの参加者セットも更新されました。
は、どのように私はホストだけを更新することができますか?
あなたはあまりにも() ''救う投稿することができますか?そして、あなたは 'カンファレンス'をどうやって作りますか? – ujulu
@ujulu、確かに、それは両サイド、会議だけで動作します。会議を保存すると、会議のホストが更新されます。しかし、ユーザーのホストセットは更新されません。 – egaoneko