Hallo allerseits
Ich habe Probleme mit dem Löschen von Entities, die andere Entity referenzieren. Allerdings nur bei einer Entity, während es bei anderen funktioniert.
Beispiel:
Person hat Adresse (@OneToOne). Wenn ich Person lösche (kein Cascade.xxx), mache ich es in etwa:
Und, dies funktioniert.
Jetzt habe ich einen Vertrag, der einen Auftraggeber referenziert. Der Auftraggeber ist an sich nur eine Entity, die eine Person referenziert: also, eine zwei Attribute-Entity. Wenn ich Vertrag löschen möchte, mache ich es ähnlich wie oben:
Und da tut sich nichts: es heisst, dass Auftraggeber nicht gelöscht werden kann, da noch aus der Tabelle 'vertrag' referenziert.
Ist das wirklich so, dass ich zuerst das Löschen des Vertrags commiten muss, bevor ich den Vertrag löchen kann? Und falls ja, wie funktioniert das Beispiel mit Person und Adresse?
Danke.
Ich habe Probleme mit dem Löschen von Entities, die andere Entity referenzieren. Allerdings nur bei einer Entity, während es bei anderen funktioniert.
Beispiel:
Person hat Adresse (@OneToOne). Wenn ich Person lösche (kein Cascade.xxx), mache ich es in etwa:
Java:
em.getTransaction.begin();
em.removePeson(person);
em.removeAdresse(adresse)
em.getTransaction.commit();
Und, dies funktioniert.
Jetzt habe ich einen Vertrag, der einen Auftraggeber referenziert. Der Auftraggeber ist an sich nur eine Entity, die eine Person referenziert: also, eine zwei Attribute-Entity. Wenn ich Vertrag löschen möchte, mache ich es ähnlich wie oben:
Java:
em.getTransaction.begin();
em.removeVertrag(vertrag);
em.removeAuftraggeber(auftraggeber)
em.getTransaction.commit();
Und da tut sich nichts: es heisst, dass Auftraggeber nicht gelöscht werden kann, da noch aus der Tabelle 'vertrag' referenziert.
Ist das wirklich so, dass ich zuerst das Löschen des Vertrags commiten muss, bevor ich den Vertrag löchen kann? Und falls ja, wie funktioniert das Beispiel mit Person und Adresse?
Danke.