Ich möchte sicherstellen, dass ich verstehe, was ich in meiner DB-Darstellung & mit Hibernate mache.Foreign Key Einschränkung für eine @ OneToMany-Beziehung
Mit meinem Projektmanagement-Tool kann mein Benutzer ein Project
erstellen, das aus Phase
(s) besteht.
Ich möchte nicht über eine Verknüpfungstabelle erstellen und haben wie solche in meinen Einheiten fort:
Mein ProjectEntity
:
@OneToMany(mappedBy = "id")
private Set<PhaseEntity> phases = new HashSet<>(0);
und meine PhaseEntity
:
@NotNull
@ManyToOne(targetEntity = ProjectEntity.class)
private ProjectEntity project;
Nach dem Befüllen meine PhaseEntity
und speichern sie über meine DAO
phaseDao.save(phaseEntity);
bekomme ich folgende Fehlermeldung:
ERROR: insert or update on table "phase" violates foreign key constraint "fk8x1x98c4hq4ps0d30y6nxe90u" Detail: Key (phase_id)=(1820) is not present in table "project".
So wie ich es sehe, drückt eine Phase ein bestimmtes ProjectEntity
zu meiner Datenbank enthält, sollte einen Eintrag erstellen und ein anderes zu aktualisieren, sollte die erste meine sein phase
Eintrag, und die letztere sollte ein Update auf eine project
durch Hinzufügen einer Phase zu seiner Set
sein.
Muss ich meine Phase explizit in meiner project
Tabelle speichern? Sehen Sie irgendwelche Fehler in meiner Argumentation?