delvinMarc
Grünschnabel
Hallo,
ich habe ein grundsätzlich einfaches Problem das Hibernate jedoch nicht so einfach unterstützt.
Ich arbeite mit Java 5, Hibernate, Spring und steuer alles über Anotations... naja, das ApplicationConfig File ist natürlich als xml vorhanden.
Ich habe nun das Problem, das ich ein neues Objekt Netz anlege in dem ein und das selbe Objekt (beinhaltet neben der ID ein weiteres Unique Attribute) mehrfach verhängt ist. Beim Speichern (mit persist) bekomme ich eine Exception da eine Unique-Key Verletzung vorliegt.
Kleines Beispiel (Nicht praxisnah aber entspricht meinem Problem):
"Familie" verweist auf "Person 1" & "Person 2" beide verweisen auf "Adresse 1". "Person 2" hat zusätzlich noch "Adresse 2".
Die Adressen haben ein zusätzliches Attribut aus einem andern System das eindeutig ist. Speicher ich nun "Familie" ab kommt es zur Unique-Key Verletzung bei "Adresse 1". Hibernate versucht das Objekt also 2mal zu speichern.
Ich weiß das eine Möglichkeit ist, die Adresse mit merge zu speichern und das zurückgegebene Objekt dann an Person zu verhängen. Leider ist merge ein sehr aufwendiger Befhel mit einer Unmenge an SQL Statements und erhöht die Zeit für die Persistierung locker auf das doppelte in einer großen DB. Daher suche ich hier eine Alternative.
Denke mal das Problem kann nicht so außergewöhnlich sein. Hoffe jemand weiß Rat!
ich habe ein grundsätzlich einfaches Problem das Hibernate jedoch nicht so einfach unterstützt.
Ich arbeite mit Java 5, Hibernate, Spring und steuer alles über Anotations... naja, das ApplicationConfig File ist natürlich als xml vorhanden.
Ich habe nun das Problem, das ich ein neues Objekt Netz anlege in dem ein und das selbe Objekt (beinhaltet neben der ID ein weiteres Unique Attribute) mehrfach verhängt ist. Beim Speichern (mit persist) bekomme ich eine Exception da eine Unique-Key Verletzung vorliegt.
Kleines Beispiel (Nicht praxisnah aber entspricht meinem Problem):
"Familie" verweist auf "Person 1" & "Person 2" beide verweisen auf "Adresse 1". "Person 2" hat zusätzlich noch "Adresse 2".
Die Adressen haben ein zusätzliches Attribut aus einem andern System das eindeutig ist. Speicher ich nun "Familie" ab kommt es zur Unique-Key Verletzung bei "Adresse 1". Hibernate versucht das Objekt also 2mal zu speichern.
Ich weiß das eine Möglichkeit ist, die Adresse mit merge zu speichern und das zurückgegebene Objekt dann an Person zu verhängen. Leider ist merge ein sehr aufwendiger Befhel mit einer Unmenge an SQL Statements und erhöht die Zeit für die Persistierung locker auf das doppelte in einer großen DB. Daher suche ich hier eine Alternative.
Denke mal das Problem kann nicht so außergewöhnlich sein. Hoffe jemand weiß Rat!