von Datenbank zu JPA2.0 code - geht das?

dermoritz

Bekanntes Mitglied
Ich bin ziemlich neu im Persistence-Metier und Frage mich ob und wie man damit "klassisch" entwickeln kann: Man entwirft eine Datenbank (oder hat eine schon vorhandene) und schreibt ein Programm welches mit dieser Datenbank kommunizieren soll. Die Entitäten sind also schon vorhanden. Um mir das programmieren zu vereinfachen dacht ich ich nehm mal JPA2.0 (werde eh demnächste ein Javaee6 Projekt beginnen), aber mit einer Persistence-Api macht man ja Objekte und Entitäten irgendwie gleichzeitig und verwurstet beides irgendwie stärker als ich es gewöhnt bin.

Nun hab ich ja schon eine DB, kann ich darauf irgendwie direkt mit JPA2.0 zugreifen? Oder muss ich irgendwie erst Code schreiben/generieren? Lohnt sich dieser Aufwand überhaupt? - Die alternative wäre ganz klassisch mit der DB zu kommunizieren, was natürlich fehlerträchtiger sein kann?!

Also ist es ein gute Idee eine Persistence-APi "rückwärts" zu benutzen und wie stellt man das im Falle von JPA2 am besten an?
 

Deadalus

Bekanntes Mitglied
Och du kannst eigentlich mit jeder guten IDE aus den vorhandenen Tabellen automatisch Entity Klassen erzeugen lassen. Funktioniert wunderbar mit Netbeans. Mit Eclipse hab ich es noch nicht getestet sollte aber auch gehen. Bei Netbeans findest du das ganze unter "New File -> Persitence -> Entity Classes From Database"

Natürlich funktioniert das ganze auch, wenn du die klassen von Hand schreibst.
 
Zuletzt bearbeitet:
M

maki

Gast
Hast du denn scohn Produktivdaten in der DB?
Wenn ja, musst du halt ein Reverse-Engineering durchführen, ansonsten kannst du auch gleich den "richtigen" Weg mit JPA gehen: Zerst das Klassenmodell mit Mapping Infos, daraus wird das DB Schema generiert.
 

dermoritz

Bekanntes Mitglied
es sind eben schon Produktivdaten in der DB. Ich hab 2 Tabellen eine weitere Datentabelle und eine "Join"-Tabelle dazugepackt.
Der Tip mit Netbeans ist schon mal super - ich benutze es eh für GUI-Entwicklung. Falls es sowas auch bei Eclipse gibt (für JPA 2.0) immer her mit den Infos.

Edit: ich hab das mal in netbeans probiert - genial :). dazu hab ich aber noch ein paar fragen:

damit es funzt musste ich in die pom noch von org.eclipse javax.persistence und eclipselink einfügen. Brauche ich auch noch einen MySql Connector?

Die 2. Frage betrifft die Struktur der generierten Klassen, ich hab leider bisher kaum Erfahrung mit JPA (hab bisher nur Bücher gelesen und minimal-Beispiele gemacht): in meinem Fall hab ich wie gesagt eine Join-Table, die hab ich auch bei Netbeans gewählt und Netbeans hat automatisch die anderen 2 Tabellen mit selektiert - wunderbar soweit.

Generiert wurden 4 Klassen: jeweils eine für jede Tabelle und eine weitere für die JoinTable: "MeineJoinTablePK" diese ist "embedabble" und wird dann als ID für die JoinTable verwendet. Nun frag ich mich wie ich das alles verwenden soll bzw. war meine Vorstellung die, dass man eigentlich nur die join-table-klasse verwendet und die attribute der anderen klassen von der jointable aus sehen kann.
genau gesagt werde ich kaum direkt auf eine der 2 anderen Tabellen zugreifen wollen. Geht das mit dem generierten Code, oder hab ich vielleicht etwas beim generieren falsch gemacht?
 
Zuletzt bearbeitet:

Ähnliche Java Themen


Oben