# mit Hibernate 1:n in view richtige implementieren



## Mican (1. Feb 2007)

Hallo benutze hibernate 3.1 und java 1.5,

Hab ein Kunden mit mehreren Adressen. In der view ist es so implementiert das ein Kunde mit get gefunden wird. Danach kann der benutzer adressen 

hinzufügen
bearbeiten
löschen

die AdressenListe  ist als HashSet implementiert. Es passt auch alles nur wenn ich abbreche soll der anfangszustand wiederhergestellt werden (änderungen an der HashSet rückgänging machen). Da ich aber cascade="all-delete-orphan" verwende und der Kunde nach dem laden im zustand persistent ist werden alle änderungen an den Adress objekten direkt in die db gschrieben. 

Eine möglichkeit wäre glaube ich eine Transaktion zu beginnen sobald ich den Kunden geladen habe, will ich aber icht da ich gehört habe mann soll die Transaktion nicht lange halten.
Gibt es so ne art savepoint in hibernate oder wie implementiert man solche Eigenschaften. Für Tipps wäre ich dankbar.


----------



## KSG9|sebastian (1. Feb 2007)

Du könntest das Objekt detachen. Dann kannst du Änderungen vornehmen und es wieder mergen. Ist aber keine sonderlich schöne Lösung.


----------



## Guest (1. Feb 2007)

mit detachen meinst du wohl die session closen, oder hat session irgendne funktion detach?? 

Das problem wäre bei mir dann dann müsste ich den vollständigen objektgraph laden wenn es zum bearbeiten geladen wird und der ist gross (kunde hat noch zich andere referenzen und die haben wieder referenzen). Also wenn ich detache und er will zb kunde.getNotizen dann krieg ich eine exception -> session is closed ..usw. 

Eine frage ist auch ob das üblich ist das man, wenn ein objekt (in meinem fall kunde) referenzen hat (adressen) und wenn man dieses objekt zum bearbeiten ladet und die referenzen löscht,hinzufügt und bearbeitet und dann abbricht das es wieder im vorherigen zustand ist. 

Hat mal jemand sowas implementiert? Typischer einsatz zb. bei CRM lösungen wenn ein Kunde mehrer Ansprechpartner hat oder notizen. Bisher ist es bei mir so das wenn diese referenzenliste verändert wird und er abbricht die änderungen trotzdem gespeichert werden.


----------



## KSG9|sebastian (2. Feb 2007)

Ich weiß nicht genau wie deine View aussieht, aber normal ist es doch so dass man einen Speichern und nen Abbrechen-Button hat?! Und die änderungen werden erst übernommen wenn gespeichert wird.


----------

