Hibernate Tabellen-Spalten und Constraints programatisch erstellen

benhaze

Mitglied Platinum
Hallo!
Ich habe folgendes Problem und komme dabei einfach nicht richtig weiter.
Ich möchte im Prinzip *nur* meine HibernateConfiguration *programatisch*
erweitern. Das klappt aber nur bedingt.

Code:
<many-to-one class="de.test.platform.TestEntity" fetch="select" name="schwfirma">
<column name="user_id"/>
</many-to-one>

Diesen Block möchte ich als Code verfassen.
Da aber die API unvollständig dokumentiert ist, komme ich einfach nicht weiter.
Ich wäre froh, könnte mir jemand helfen!

So habe ich angefangen:
(Constraints und Spalten werden richtig angelegt, nur habe ich irgendetwas anderes falsch gemacht, sodas ich nun einen Hinweis bekomme (im createSessionFactory) das user_id nicht vorhanden ist)

Code:
        ManyToOne v = new ManyToOne(t);
       
        //v.setTypeName(p_type);
        v.setTable(t);
        v.setFetchMode(FetchMode.SELECT);
        v.setReferencedEntityName("de.test.TestEntity");
        v.setLazy(true);
        v.setUnwrapProxy(false);

        Column col = new Column("user_id");
        col.setNullable(true);
        col.setUnique(false);
        if (p_length != null)
            col.setLength(p_length);

        v.addColumn(col);
        v.setEmbedded(true);
        v.setIdentifierGeneratorStrategy("assigned");
       
        col.setValue(v);

        Column mycol = new Column(colNameInDB);
        mycol.setNullable(true);
        mycol.setUnique(false);
        mycol.setValue(v);
        if (p_length != null)
            mycol.setLength(p_length);

        t.addColumn(mycol);
        List l = new ArrayList<Column>();
        l.add(mycol);
        t.createForeignKey(null,l, "de.test.TestEntity");

        Property p = new Property();
        p.setGeneration(PropertyGeneration.NEVER);
        p.setLazy(false);
        p.setOptional(true);
        p.setValue(v);
        p.setName(fieldName);
        p.setNodeName(fieldName);
        p.setPropertyAccessorName("property");
        p.setCascade("none");
        p.setUpdateable(false);
        p.setInsertable(false);
        p.setSelectable(true);

        p_persistenClass.addProperty(p);

Hat jemand eine Idee, wie man mit den Klassen:
- ManyToOne
- Property
- Column
umzugehen hat?
 
Zurück