Det vigtigste, du vil være opmærksom på, er at definere ejersiden af forholdet korrekt. Så vidt jeg husker, var mit udgangspunkt fra den (til tider svære at forstå) officielle dokumentation, at ejersiden stort set er den, der som standard vil udløse kaskader og gennemsigtige sletninger.
For eksempel har du i ovenstående defineret ejersiden som ProjectEntity
, så det vigtigste trin for at cascaded persistens fungerer, er at tilføje projektet til PersonEntity.projects
.
Du vil derefter ringe til persist
på ejersiden af forholdet, dvs.
em.persist(projectTest);
Hvis dette ikke hjælper, vil jeg foreslå, at du aktiverer SQL-logning i din JPA-udbyder for at finde ud af, hvilke sætninger den forsøger at udføre, og især i hvilken rækkefølge disse entiteter bliver insert
red.
Prøv også, i henhold til eksisterende kommentarer, at vedholde personen først. Hvis du gør dette, tror jeg, at den korrekte måde er at tilføje den vedvarende enhed til forholdet, dvs.:
PersonEntity persistedPerson = em.persist(personTest);
projectTest.setPersonId(persistedPerson);
em.persist(projectTest);