Frage

i woundered wenn jemand könnte in der Lage sein, mir zu helfen. Ich versuche, herauszufinden, was für Google (oder anderen Ideen !!) im Grunde i eine bidirektionale vieler zwischen einer Benutzereinheit zu vielen Mapping habe und eine Club-Einheit (über eine Join-Tabelle genannt userClubs) Ich möchte jetzt eine Spalte umfassen in userClubs, die die Rolle darstellt, so dass, wenn ich user.getClubs () aufrufen kann ich trainieren auch, was Ebene Zugang, den sie haben. Gibt es ein kluger Weg, um diese mit Hibernate tun oder muss ich die Datenbankstruktur zu überdenken? Vielen Dank für jede Hilfe (oder nur für diese weit zu lesen !!)

die user.hbm.xml sieht ein bisschen wie

<set name="clubs" table="userClubs" cascade="save-update">
         <key column="user_ID"/>
         <many-to-many column="activity_ID"
           class="com.ActivityGB.client.domain.Activity"/>
</set>

das activity.hbm.xml Teil

<set name="members" inverse="true" table="userClubs" cascade="save-update">
        <key column="activity_ID"/>
        <many-to-many column="user_ID"
            class="com.ActivityGB.client.domain.User"/>
</set>

Die aktuelle userClubs Tabelle enthält die Felder id | benutzer_ID | ACTIVITY_ID

Ich möchte dort aufzunehmen id | benutzer_ID | ACTIVITY_ID | Rolle

und in der Lage sein, die Rolle auf beiden Seiten für den Zugriff auf ...

War es hilfreich?

Lösung

Der einfachste Weg wäre es, eine Einheit zu schaffen, aus der Tabelle verbinden.

könnten Sie die beiden Fremdschlüssel in den Club und Benutzerentitäten wie die id (mit ) verwenden, aber ich würde Ihnen raten, eine technische id-Spalte hinzufügen, und stellen nur eine eindeutige Einschränkung auf die Fremdschlüssel (sonst , die Kaskade, wenn Sie speichern Verein oder Benutzer nicht Arbeit mehr Infos hier. http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-compositeid ).

Wenn Sie Ihre neue Einheit nennen Userclub, müßten Sie eine Eins-zu-viele von User Userclub und von Club zu Userclub und viele-zu-eins von Userclub zu Verein und von Userclub auf Benutzer.

Sie werden einige Refactoring haben auf dem Java-Code zu tun, aber Sie müssen nicht die db ändern (außer Addition der ID und Rolle Spalten).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top