G
Guest
Gast
Hallo zusammen,
tja, lange nicht mehr hiergewesen...
Ich habe ein leichtes Verständnis - Problem mit Netbeans 6.1 und der Art
und Weise, wie der Projekt-Wizard eine Java-Desktop-Anwendung mit
einer "embedded" Datenbank handeln will... (Datenbank ist einfach JavaDB,
die aus den Java 6 Verzeichnis..)
Er verlangt ja, dass ich eine bereits vorhandende Datenbank und Tabelle angebe.. gut
und schön, mache ich zu Fuss.
Die Tabelle sieht so aus:
Einfach nur eine Test-Tabelle, fragt nicht nach dem Sinn oder dergleichen.. Wink.
Die ID sollte sich so ja automatisch generieren, laut Referenz der DERBY (Java DB) Doku.
Im Wizard gebe ich ihm dann die Connection zur DB mit.. funktioniert auch.
Wenn ich dann in der erstellten Applikation einen neuen Datensatz anlegen will, OHNE ihm eine ID mitzugeben, wird gemeckert.. weil er explizit laut Debug-Ausgabe das Feld ID mit NULL füllen will, und das geht eben nicht...
Schön, wie sage ich ihm, "lass ID im Zweifelsfall in Ruhe?", irgendwie finde ich das Binding nicht...
Zumal da noch eine Datei
createDDL.jdbc
im Projektverzeichnis rumkraucht.. so was habe ich nur grob
im Umfeld von "Glassfish" gehört (habe ich aber noch nichts weiteres mit gemacht), deren Inhalt macht mich aber stutzig:
Schön, wo zieht er sich denn DAS her, das hat ja nur eine ungefähre Ähnlichkeit mit dem, was ich da oben definiert habe..
Mittlerweile weiß ich, dass als Persistence API "TopLink" benutzt wird, Teil von Glassfish.. das Thema
ist mir bisher nie untergekommen, sorry.
Ich habe ja die Klasse "Machines" die mit ihren Annotations wohl die Brücke zur Tabelle darstellt.. aber
wie bringe ich der bei, dass das ID-Feld von der Datenbank gehandeld wird? "nullable false" in der
Column-Definition von der Klasse "Machines" bringts alleine nicht, dann meckert mich die DB an, dass jemand versucht, ihr die ID zu ändern (vermutlich wegen dem "generated always" in der Definition).
Kann es sein... dass das auch gar nicht anders geht, da die ganze Persistence API ja auch DB unabhängig sein soll?
Hmm.... okay, wie gehe ich das dann korrekt an?
Danke im voraus.
tja, lange nicht mehr hiergewesen...
Ich habe ein leichtes Verständnis - Problem mit Netbeans 6.1 und der Art
und Weise, wie der Projekt-Wizard eine Java-Desktop-Anwendung mit
einer "embedded" Datenbank handeln will... (Datenbank ist einfach JavaDB,
die aus den Java 6 Verzeichnis..)
Er verlangt ja, dass ich eine bereits vorhandende Datenbank und Tabelle angebe.. gut
und schön, mache ich zu Fuss.
Die Tabelle sieht so aus:
Code:
create table machines (id int generated always as identity primary key, name
varchar(40), type varchar(40), identno varchar(40));
Einfach nur eine Test-Tabelle, fragt nicht nach dem Sinn oder dergleichen.. Wink.
Die ID sollte sich so ja automatisch generieren, laut Referenz der DERBY (Java DB) Doku.
Im Wizard gebe ich ihm dann die Connection zur DB mit.. funktioniert auch.
Wenn ich dann in der erstellten Applikation einen neuen Datensatz anlegen will, OHNE ihm eine ID mitzugeben, wird gemeckert.. weil er explizit laut Debug-Ausgabe das Feld ID mit NULL füllen will, und das geht eben nicht...
Schön, wie sage ich ihm, "lass ID im Zweifelsfall in Ruhe?", irgendwie finde ich das Binding nicht...
Zumal da noch eine Datei
createDDL.jdbc
im Projektverzeichnis rumkraucht.. so was habe ich nur grob
im Umfeld von "Glassfish" gehört (habe ich aber noch nichts weiteres mit gemacht), deren Inhalt macht mich aber stutzig:
Code:
CREATE TABLE APP.MACHINES (ID INTEGER NOT NULL, NAME VARCHAR(255), TYPE VARCHAR(255), IDENTNO VARCHAR(255), PRIMARY KEY (ID))
Schön, wo zieht er sich denn DAS her, das hat ja nur eine ungefähre Ähnlichkeit mit dem, was ich da oben definiert habe..
Mittlerweile weiß ich, dass als Persistence API "TopLink" benutzt wird, Teil von Glassfish.. das Thema
ist mir bisher nie untergekommen, sorry.
Ich habe ja die Klasse "Machines" die mit ihren Annotations wohl die Brücke zur Tabelle darstellt.. aber
wie bringe ich der bei, dass das ID-Feld von der Datenbank gehandeld wird? "nullable false" in der
Column-Definition von der Klasse "Machines" bringts alleine nicht, dann meckert mich die DB an, dass jemand versucht, ihr die ID zu ändern (vermutlich wegen dem "generated always" in der Definition).
Kann es sein... dass das auch gar nicht anders geht, da die ganze Persistence API ja auch DB unabhängig sein soll?
Hmm.... okay, wie gehe ich das dann korrekt an?
Danke im voraus.