我想为用户保存severel角色。为此,我创建了一个Jointable user2role,它为每个用户id分配一个角色id。到目前为止一切都很好。另外,我想在连接表中保存一些列,例如最后一个last_modifying_date(参见下面的表格定义)。我不想为user2role创建一个额外的控制器。我想通过扩展当前的映射定义来解决它。谢谢你的帮助!
User(User.hbm.xml)的映射文件包含以下定义:
<set name="roles" cascade="all" table="user2role" lazy="false">
<key column="userID" />
<many-to-many class="domain.Role"
column="roleID" />
</set>
表user2role看起来像:
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';
答案 0 :(得分:2)
请参阅以下内容:
http://www.mkyong.com/hibernate/hibernate-many-to-many-example-join-table-extra-column-annotation/
StackOverflow本身也回答了这个问题: