sieht so aus als wäre das ‘mappedBy’ wichtig,
hast du einen bestimmten Grund, es auf die Klasse zu legen, die keinen direkten Persist-Auftrag bekommt?
wenn einfach nur irgendwo übernommen, dann versuche es mal andersrum
JPA persist one-to-many relationship by non-owning side [Solved] (Object Relational Mapping forum at JavaRanch)
vorletztes Post vor allem (*),
das 4.letzte bzw. auch 4. ist auch zu empfehlen, könnte aber gut sein das du das schon hast:
verlasse dich lieber nicht drauf, nur einen neuen Contact bei Person in die Liste einzufügen oder nur im Contact das Person-Attribut zu setzen,
immer selber beide Aufgaben erledigen,
allein schon dafür dass es konsistent ist bevor das Framework irgendeine Arbeit dazu übernimmt (wer weiß wann das erst passiert)
(*) aber das nur aus halben Interesse gesucht, direkt benutze ich das nicht und vermeide auch im verwendeten Hibernate solche Konflikte,
sowas sollte das Framework freilich alleine können,
oder wenn schon begründet anders aufgebaut, dann mehr Unterstützung für User,
falls nicht zur Laufzeit, dann wenigstens für Testen/ Fehleruntersuchunge einen Dummy-Modus anbieten:
‘Speicherzeitpunkt X, zur Speicherung gemeldete Objekte sind …,
verlinkte gemappte Objekte sind …, jeweils: in DB vorhanden: ja/ nein, aktuell Persistenz-Übernahme/ Löschen ja/ nein/ wieso,
evtl. gefunden: Rückverlinkung mit Cascade-Persistenz, Warnung an User, mögliche andere Nutzung geplant, Verweis auf grundsätzliche Strategien’
usw., sollte doch nicht so schwer sein und kann ja ab x beteiligten Klassen/ y beteiligten Objekten streiken, für einfache Fälle wäre es aber so hilfreich…