# DDL Statements aus Klassen generieren.



## Thomas Darimont (1. Juni 2004)

Hallo!

Kennt jemand von euch zufällig eine Bibliothek welche mir für eine beliebige Java Klasse ein für die jeweilige Datenbank passendes Create Table Statement erzeugt?

Ganz im Sinne von Hibernate. Jedoch ist mir der Weg 
Java .class -> Hibernate .hbm.xml -> DDL Statement .sql 
ein wenig zu holprig.

Kennt daher jemand eine Bibliothek (im Sinne eines XDoclet/ Ant Tasks vielleicht)
welche mir zum einen die Java Typen korrekt in die Datenbankspezifischen SQL Typen (Oracle,SQL Server 2000, DB2) map't und vielleicht noch auf Quellcode Annotation im Sinne von irgendwelchen Doclet Tags reagiert, mit welchen ich beispielsweise einen Primärschlüssel Constraint auf eine Spalte legen könnte?

Gruß Tom


----------



## CHaoSlayeR (8. Oktober 2004)

Mit Hibernate bist du doch da schon richtig! Du brauchst da ja keine XML oder DDL selber schreiben!

Es gibt ja schließlich auch das "xdoclet_ant.xml" in dem über ant (ab 1.5) und doclet tags im java-code die hibernate-xml's erzeugt werden und auch "createTable" ist dabei. Bei mir  das gut (auch wenn ich grad ein Problem damit habe...).

Im Java-Code kannst du dann einfach z.B. folgendes setzen:

```
.
.
.

/**
 * @hibernate.class
 *  table="ROLE"
 */
public class RoleImpl implements Role, DomainIdentifiable {

.
.
.

    /**
     * @hibernate.collection-many-to-many
     * class="de.condat.scheduler.domain.impl.UserImpl"
     * column="ID"
     * @hibernate.set
     * @hibernate.collection-key 
     *  column="OTHERID" 
     *  length=32
     */
    private Set getContainedUsers() {
        ...
    }

.
.
.

    /**
     * @hibernate.property
     */
    public String getName() {
        return name;
    }

.
.
.
```


schau einfach mal in die doclet-tag-Dokumentation von Hibernate: XDoclet - Tagreference - Hibernate


----------

