Hallo zusammen!
Ich bin in Sachen Hibernate ein rookie. Nun bin ich mich ein wenig am einarbeiten, da ich Hibernate für meine Diplomarbeit einsetze.
Ausganslage:
Ich habe zwei Tabellen
TARGETGROUP und
COUNTRY.
Diese stehen in einer
many-to-many Beziehung.
Folgende Abbildung zeigt die Struktur:
Code:
_____________ __________________ _____________
| | | | | |
| TARGETGROUP | | MAP_COUNTRY | | COUNTRY |
|_____________| |__________________| |_____________|
| | | | | |
| *ID | <--> | *TARGETGROUP_ID | | |
| AGE | | *COUNTRY_ID | <--> | *ID |
| | |__________________| | NAME |
|_____________| |_____________|
Hier das Mapping dazu:
Code:
<hibernate-mapping>
<class name="dummy.Targetgroup" table="TARGETGROUP">
<id name="id" column="ID" type="long">
<generator class="increment" />
</id>
<property name="age" />
<set name="countries" table="MAP_COUNTRY">
<key column="TARGETGROUP_ID" />
<many-to-many column="COUNTRY_ID"
class="dummy.Country" />
</set>
</class>
</hibernate-mapping>
Das Problem ist, wenn ich ein paar TARGETGROUPs erfasse, und diesen mehrere COUNTRIEs zuweise, erstellt Hibernate in der "COUNTRY" Tabelle immer einen neuen Eintrag.
Beispiel: Ich weise der Targetgrp1 das Land "Schweiz" zu, und einer Targetgrp2 auch "Schweiz" als Land, werden leider zwei Einträge mit NAME=Schweiz mit verschiedenen ID's erstellt. Ich möchte jedoch, wenn der Eintrag in der COUNTRY Tabelle bereits existiert, dass Hibernate die ID von diesem Eintrag als Fremdschlüssel in der MAP_COUNTRY Tabelle einträgt, anstatt jedesmal einen neuen Datensatz einzutragen.
Kann mir jemand helfen? Ich denke mal dies ist ein ziemlich grundlegendes Problem, jedoch habe ich auch im Web nichts schlaues dazu gefunden. Auch weil ich nicht genau gewusst habe nach was ich "googlen" soll...
Vielen Dank und Gruss