habe eine JTable zusammen mit einem TableModel, welche via Hibernate aus einer Datenbank gefüllt wird. Klappt ohne Probleme. Bin echt begeistert, wie einfach das doch eigentlich war.
Nun hab ich jedoch das Problem, dass ich aus irgendwelchen Gründen eine Zeile aus der JTable (die selektierte) nicht löschen kann.
Ich verwende eine ArrayList, welche in der JTable abgebildet wird. Lösche ich die Zeile, verschwindet diese auch aus der Tabelle, jedoch nicht in der Datenbank, so dass sie beim nächsten Laden wieder auftaucht.
Das Problem wird sein, dass ich die Änderung nicht in die Datenbank schreibe. Wie mach ich dies? Habt ihr evtl. ein Beispiel? Ich muss ja die Änderung in der Tabelle irgendwie via Hibernate einfach wieder in die Datenbank zurückschreiben können, oder?
Ich kenne Hibernate nicht, nehme aber an, daß dort irgendwo eine "delete" Funktion rumschwirrt. Diese könntest du z.B. in deiner "removeRow" Methode im TableModel aufrufen, oder in der "tableChanged" Methode vom "TableModelListener".
Nun hab ich doch noch ein Problem. Ich kann zwar die Zeilen löschen, jedoch sind es nicht immer die richtigen.
Das Problem liegt wohl da, dass ich der Methode
removeElement
im TableModel die selektierte Zeile aus der JTable mitgebe.
Code:
myModel.removeElement(maTable.getSelectedRow());
In der Datenbank wird daraufhin der Datensatz gelöscht, der die Zeilennummer als ID (auto increment) hat. Dies ist natürlich ein Problem, da im Fall eines erneuten Löschens der "neuen" dritten Zeile der Datensatz natürlich nicht mehr da ist und eine Exception gefeuert wird.
Wie bekomme ich es also hin, dass ich fürs Löschen die ID des Objektes mitgebe bzw. diese aus der JTable lese?
stehe gerade vor demselben Problem. Versuche in einer JTable einen Zeile, also ein Objekt zu löschen.
Habe mir dazu eine Methode geschrieben, die dies in der Datenbank erledigt. Die Methode funktioniert und löscht das entsprechende Objekt.
Das Problem besteht nur darin, dass ich die Verbindung von der selektierten Zeile auf die ID (PKey) des Objektes in der Datenbank nicht hinbekomme. Wie bekomme ich es hin, dass ich die ID des Objektes, welche in der ersten Spalte der Tabelle (JTable) steht anstelle der gerade selektierten Zeile übergebe....