多对多单向 User --->Role
//User.hbm.xml
<hibernate-mapping>
<class name="User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="roles" table="t_user_role">
<key column="userid"/>
<many-to-many class="Role" column="roleid"/>
</set>
</class>
</hibernate-mapping>
<!--
多对多关联映射会生成第三方的一张表, t_user_role
<key column="userid"/> 表示在表 t_user_role 中 加入userid ,指向 t_user 的主键
<many-to-many class="Role" column="roleid"/> 表示在由实体类Role 映射成的那张表(t_role)中加入一
个字段roleid ,指向 t_role 的主键
-->
//Role.hbm.xml
<hibernate-mapping>
<class name="Role" table="t_role">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
</class>
</hibernate-mapping>
多对多双向 User <---> Role
//Role.User.xml (跟单向一样)
<hibernate-mapping>
<class name="User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="roles" table="t_user_role">
<key column="userid"/>
<many-to-many class="Role" column="roleid"/>
</set>
</class>
</hibernate-mapping>
<!--
table属性值必须和单向关联中的table属性值一致
<key>中column属性值要与单向关联中的<many-to-many>标签中的column属性值一致
在<many-to-many>中的column属性值要与单向关联中<key>标签的column属性值一致
-->
//Role.hbm.xml(两边差不多一样的配置方法)
<hibernate-mapping>
<class name="Role" table="t_role">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="users" table="t_user_role" order-by="userid">
<key column="roleid"/>
<many-to-many class="User" column="userid"/>
</set>
</class>
</hibernate-mapping>