K
Konstantin Denerz
Hallo,
Ich habe ein O/R Mapping(Hibernate) für ein System geschrieben und bin dabei auf ein Problem gestossen.
Kurze Beschreibung:
- Ich habe ein Basisklasse Klasse1 und eine die von dieser erbt Klasse2.
- Dann hat meine Klasse1 ein Attribut vom Typ Klasse3.
- Es gibt noch eine Klasse 4, die von der Klasse 3 Erbt
- Jede Klasse hat eine eigene Tabelle in der Datenbank(Oracle).
Nach dem Mapping habe ich versucht ein Objekt vom Typ Klasse2 mit dem Attribut vom Typ Klasse4 (Da es von Klasse 3 erbt) zu speichern. Dabei werden die Attribute von Klasse1(Geschäftsobjekt) und Klasse2(Geschäftsobjekt) sowie Klasse3(Wertobjekt) in die Tabellen geschrieben, aber nicht von Klasse 4.
Hat jemand eine Idee wie ich es realisieren könnte?
Beschreibung:
(Code)
(Mapping 1: klasse1.hbm.xml)
(Mapping 2: klasse3.hbm.xml)
Gruß Konstantin
Ich habe ein O/R Mapping(Hibernate) für ein System geschrieben und bin dabei auf ein Problem gestossen.
Kurze Beschreibung:
- Ich habe ein Basisklasse Klasse1 und eine die von dieser erbt Klasse2.
- Dann hat meine Klasse1 ein Attribut vom Typ Klasse3.
- Es gibt noch eine Klasse 4, die von der Klasse 3 Erbt
- Jede Klasse hat eine eigene Tabelle in der Datenbank(Oracle).
Nach dem Mapping habe ich versucht ein Objekt vom Typ Klasse2 mit dem Attribut vom Typ Klasse4 (Da es von Klasse 3 erbt) zu speichern. Dabei werden die Attribute von Klasse1(Geschäftsobjekt) und Klasse2(Geschäftsobjekt) sowie Klasse3(Wertobjekt) in die Tabellen geschrieben, aber nicht von Klasse 4.
Hat jemand eine Idee wie ich es realisieren könnte?
Beschreibung:
(Code)
Java:
//Geschäftsojekt z.B. Person
class Klasse1{
//Liste von Obj. des Typs Klasse3 z.B. Auto
private List<Klasse3> meineAttribute; //
}
//Geschäftsobjekt
class Klasse2 extends Klasse1{
}
//Wertobjekt z.B. Auto
class Klasse3{
}
//Wertobjekt z.B. Audi
class Klasse4 extends Klasse3{
// die Attribute in dieser Klasse werden nicht gespeichert!
}
class Applikationsklasse{
public static void main(String[] args){
//Hier erstelle ich mein Objekt, das ich speichern will
Klasse2 klasse2 =new Klasse2();
//Hier setze ich die Attribute von klasse2
//.....
Klasse4 klasse4 =new Klasse4();
//....hier setzte ich die Attribute von klasse4
List<Klasse3> meineAttribute =new List<Klasse3>();
meineAttribute.add(klasse4);
klasse2.setMeineAttribute(meineAttribute);
//...hier Steht mein Hibernate Code
session.Save(klasse2); //Speichern des Objektes
}
}
(Mapping 1: klasse1.hbm.xml)
XML:
<class name="Klasse1">
<proper...../>
<list name="meineAttribute">
<key column="id"></key>
<list-index column="lfd_nr"></list-index>
<composite-element class="Klasse3">
<proper...../>
</composite-element>
</list>
<joined-subclass name="Klasse2">
<key column="id"></key>
<proper...../>
<proper...../>
</joined-subclass>
</class>
(Mapping 2: klasse3.hbm.xml)
XML:
<class name="Klasse3">
<proper...../>
<joined-subclass name="Klasse4">
<key column="id"></key>
<proper...../>
<proper...../>
</joined-subclass>
</class>
Gruß Konstantin
Zuletzt bearbeitet von einem Moderator: