Ich habe ein Objekt (NiProject) über Hibernate aus einer DB gelesen. Dieses Objekt hat weitere Objekte als Member (bspw. NiTechnology).
Nun möche ich eine Kopie (Klon) dieses Objektes anlegen und in der DB über Hibernate speichern. Im hbm.xml file habe ich bei den Member jeweils angegeben "unsaved-value="0".
Problem:
Einige der Member (bzw. deren Member) in NiProject haben eine Referenz auf NiProject, so dass ich denen die NEUE ID des neuen NiProject Objektes (also dem Klon) geben muss. Die habe ich jedoch momentan noch nicht. Wenn ich im Copy-Constructor this setze, ist im neuen Objekt noch das alte NiProject referenziert.
Bsp.:
NiProject newProject = new NiProject(oldNiProject);
Konstruktor von NiProject:
public NiProject(NiProject niProject) {
private NiTechnology tech;
this.projectId =new Integer(0);
...
this.tech = niProject.getTech();
this.tech.setNiProject(this); // DAS FUNKTIONIERT WOHL NICHT!!!
}//end copy-constructor
Konstruktor von NiTechnology:
public NiTechnology(NiTechnology tech) {
private Integer techId;
private NiProject niProject;
this.techId =new Integer(0);
this.niProject = tech.getNiProject();
...
}//end copy-constructor
Wie kann ich soetwas erreichen?
Vielen Dank,
Dirk
|