Hallo liebe Gemeinde,
im Laufe meiner Arbeit ist mir ein erneutes Problem aufgefallen. Ich weiss mir keinen Rat. Also folgendes:
Ich habe eine Relation PERSON und FILM. Personen können in einem FILM mitspielen, Regie führen, usw. Abgebildet wird das ganze mit Hilfe von Mengen. Das Mappingfile sieht daher wie folgt aus:
Code:
<class name="svenali.mediaDB.CPerson" table="PERSON">
<id name="ID" column="P_ID" >
<generator class="native" />
</id>
...
<set name="SpielteIn" table="REL_SCHAUSPIELER_FILM" fetch="select" inverse="true">
<key column="S_ID" />
<many-to-many column="F_ID" class="svenali.mediaDB.CFilm" />
</set>
<set name="FuehrteRegie" table="REL_REGISSEUR_FILM" fetch="select" inverse="true">
<key column="R_ID" />
<many-to-many column="F_ID" class="svenali.mediaDB.CFilm" />
</set>
...
In der Film-Mapping-Datei ist das ganze umgekehrt aufgeführt, also durch ein Schauspielerset, usw. definiert.
Das ganze funktioniert soweit ganz gut. Das Problem ist nur, es kann ja mal passieren, dass ein Schauspieler sowohl schauspielt als auch Regie führt. In dem Fall ist es die gleiche Person Instanz, die in zwei Listen aufgeführt wird. Die Idee war (und das ergibt für mich keinen Widerspruch) dass dann einmal die Beziehung in der REL_SCHAUSPIELER_FILM-Tabelle und zusätzlich in der REL_REGISSEUR_FILM-Tabelle gespeichert wird. Aber Pustekuchen. Die obige Fehlermeldung: Found Shared References erscheint.
Wie kann ich das ändern? Eine solche Beziehung muss doch mappbar sein oder?!?
Liebe Grüße,
Sven