# Entity-Klassen generieren



## karginho (10. Jun 2011)

Hallo zusammen,

zunächst mal kurz zum Szenario:
Ich habe eine GUI programmiert, in der ich Tabellen und deren Beziehungen zueinander als Benutzer der Software erstellen kann (zwar nicht wirklich grafisch - aber ist ja erstmal egal). Okay die Daten zu den einzelnen Tabellen und Beziehungen speichere in ganz normal in Objekten der Klassen.

Ein Objekt der Klasse Tabelle besteht also z.B. aus:
    String name; //Name der Tabelle
    String spalten[]; //Name der jeweiligen Spalten der Tabelle
    String datentyp[]; //Datentyp der jeweiligen Spalten der Tabelle
    String index[]; // Index (Kein,Primary,Foreign)
    Boolean autoinc[]; //Autoincrement:True/False
    Boolean nullable[]; //Nullable: True/False

Okay. Das klappt auch alles soweit - die Daten sind also in Variablen gespeichert - und können auch via XML gespeichert und wieder geladen werden ....

Nun möchte ich aus diesen Tabellen die passenden Entity-Klassen erstellen/generieren.
Wie funktioniert das am besten? Was würdet ihr mir für die Klassengenerierung empfehlen? Habt ihr Tutorials, die ihr zur Verfügung stellen könntet?... 

Dieses Gebiet ist für mich absolutes Neuland und ich müsste mich schnellstmöglich irgendwie einarbeiten.

Danke. Schönes Wochenende!


----------



## gman (10. Jun 2011)

Hi,

du willst also aus einem Objekt deiner Klasse "Tabelle" eine Entity-Klasse mitsamt den benötigten
Annotationen generieren? Interessant.
Da müsstest du mal nach Reflection gucken, aber ich weiss nicht ob das ausreicht. Sollen die 
Entity-Klassen denn als Quellcode vorliegen oder direkt als kompilierte Klassen? In letzterem 
Fall muss du glaub ich auf Libs zur Bytecode-Manipulation zurückgreifen (asm, ...).


----------



## karginho (10. Jun 2011)

Hi,

also ich weiß nicht genau wie du das mit den kompilierten Klassen meinst, .. aber es sollten halt die jeweiligen Klassen z.B. Auto.java in einem Package "entities" erstellt werden (Ja - mit den passenden Annotationen!)  - die Klassen müssen während der Laufzeit nicht ausgeführt werden oder sonst was - sie sollen nur erstellt werden.. 

Hat dies eventuell was mit MDA - Model Driven Architecture zu tun, wo ich halt aus "UML" -> Quellcode und Klassen generieren kann? Ich glaube ja - aber habe wie gesagt nicht wirklich Ahnung davon und wäre für Tutorials in diesem Bereich schon dankbar!!

Danke.


----------



## gman (11. Jun 2011)

Hmm,

hier wird öfters mal EMF empfohlen wenn es darum geht irgendwas zu generieren, aber damit kenne ich 
mich leider nicht aus. Schau es dir halt mal an.


----------



## Marcinek (11. Jun 2011)

fmpp + freemarker


----------

