hibernate, join-Tabelle mit zusätzlicher Spalte
Ich will sparen severel Rollen für einen Benutzer. Für diesen Zweck habe ich eine Jointable user2role,die ordnet jede Benutzerkennung einer Rollen-id. So weit funktioniert auch alles fein. Außerdem, ich will sparen einige Spalten, die im join-Tabelle, zum Beispiel die der letzten last_modifying_date (siehe Tabelle Definition unten). Ich dont wollen, erstellen Sie einen zusätzlichen controller für user2role. Ich möchte, um es zu lösen, durch die Verlängerung der aktuellen mapping-Definition. Danke für Eure Hilfe!
Der mapping-Datei des Benutzers (User.hbm.xml) enthält folgende definition:
<set name="roles" cascade="all" table="user2role" lazy="false">
<key column="userID" />
<many-to-many class="domain.Role"
column="roleID" />
</set>
Den Tisch user2role aussieht:
CREATE TABLE `user2role` (
`userID` int(11) NOT NULL DEFAULT '0',
`roleID` int(11) NOT NULL DEFAULT '0',
`modifying_user_db` varchar(50) DEFAULT NULL,
`modifying_user_appl` varchar(50) DEFAULT NULL,
`last_modifying_date` datetime DEFAULT NULL,
PRIMARY KEY (`userID`,`roleID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Verknüpfung User zu Berechtigungsrolle';
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beziehen sich die folgenden:
http://www.mkyong.com/hibernate/hibernate-many-to-many-example-join-table-extra-column-annotation/
http://www.codejava.net/frameworks/hibernate/hibernate-many-to-many-association-with-extra-columns-in-join-table-example
Die Frage ist auch beantwortet StackOverflow selbst:
Mapping-viele-zu-viele-Assoziation Tabelle mit zusätzlicher Spalte(s)