@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;
}
Ich verwendete JPA und ein Problem, dass OneTOMany-Feld in JPA nicht aktualisiert wird.One to Many-Feld wird nicht in JPA aktualisiert
Wenn ich Host in der Konferenz hinzugefügt habe, aber der Host-Satz des Benutzers wurde nicht aktualisiert.
Also, ich habe versucht, Benutzer Host-Set auch zu aktualisieren.
Set<Conference> conferences = form.getHost().getConferenceHostSet();
conferences.add(conference);
userRepository.save(form.getHost().setConferenceSet(conferences));
Es funktioniert gut, aber Teilnehmer setzen Anwender ebenfalls aktualisiert.
Wie kann ich nur Host aktualisieren?
Können Sie die 'save()' auch posten? Und wie erstellst du 'Conference'? – ujulu
@ujulu, Sicher, es funktioniert nur jede Seite, Konferenz. Wenn ich Konferenz speichere, wird der Gastgeber der Konferenz aktualisiert. Aber der Host-Satz des Benutzers wird nicht aktualisiert. – egaoneko