hibernate,使用附加列连接表

时间:2016-03-21 10:49:55

标签: hibernate jointable

我想为用户保存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';