stargaizer
17-12-2007, 08:59
Hallo,
ich habe eine Swing Anwendung, die per BeansBinding die Daten über JPA in einer Datenbank ablegt. Ich verwende Oracle Toplink, was mit Netbeans 6 mitgeliefert wird.
In der Datenbank gibt es Fremdschlüsselbeziehungen zwischen einzelnen Tabellen. Wenn ich nun in der GUI versuche einen Datensatz zu löschen, der noch referenziert ist, schmeißt die em.getTransaction().commit() Methode eine RollbackException, die aussagt, dass der Foreign Key Contraint verletzt wurde.
Bis hierhin ist ja alles richtig. Der betreffende Satz darf ja nicht gelöscht werden. Ich möchte/sollte/muß dem User aber mitteilen, warum das Löschen nicht geht. Wie bekomme ich also die Ursache heraus? Den Messagestring zu parsen kann ja nicht die Lösung sein! Zumal die auch anders bei z.B. Hibernate aussehen dürfte. Andere mögliche Ursachen wie z.B. ein schon vorhandener Key in einer uniq Spalte kanns ja auch geben.
IMHO sollte es doch bei JPA eine generische Möglichkeit geben, die Ursache zu ermittlen.
stargaizer
ich habe eine Swing Anwendung, die per BeansBinding die Daten über JPA in einer Datenbank ablegt. Ich verwende Oracle Toplink, was mit Netbeans 6 mitgeliefert wird.
In der Datenbank gibt es Fremdschlüsselbeziehungen zwischen einzelnen Tabellen. Wenn ich nun in der GUI versuche einen Datensatz zu löschen, der noch referenziert ist, schmeißt die em.getTransaction().commit() Methode eine RollbackException, die aussagt, dass der Foreign Key Contraint verletzt wurde.
Bis hierhin ist ja alles richtig. Der betreffende Satz darf ja nicht gelöscht werden. Ich möchte/sollte/muß dem User aber mitteilen, warum das Löschen nicht geht. Wie bekomme ich also die Ursache heraus? Den Messagestring zu parsen kann ja nicht die Lösung sein! Zumal die auch anders bei z.B. Hibernate aussehen dürfte. Andere mögliche Ursachen wie z.B. ein schon vorhandener Key in einer uniq Spalte kanns ja auch geben.
IMHO sollte es doch bei JPA eine generische Möglichkeit geben, die Ursache zu ermittlen.
stargaizer