用户JavaBean
public class User {
private Long user_id;
private String user_code;
private String user_name;
private String user_password;
private String user_state;
private Set<Role> roles = new HashSet<Role>();
//...此处省略getter 和 setter
}
角色JavaBean
public class Role {
private Long role_id;
private String role_name;
private String role_memo;
private Set<User> users = new HashSet<User>();
//...此处省略getter 和 setter
}
用户配置文件
<class name="com.itheima.domain.User" table="sys_user">
<id name="user_id" column="user_id">
<generator class="native"/>
</id>
<property name="user_code" column="user_code"/>
<property name="user_name" column="user_name"/>
<property name="user_password" column="user_password"/>
<property name="user_state" column="user_state"/>
<!-
name属性:用户JavaBean中的集合对象
table属性:中间表表名,需要与角色配置文件中的此属性相同
inverse属性:是否放弃外键 此处为放弃
-->
<set name="roles" table="sys_user_role" inverse=”true”>
<!-
key标签:配置外键
column属性:外键的字段[由中间表(sys_user_role)提供]
-->
<key column="user_id"/>
<!-
many-to-many标签:配置外键
class属性:对应另一张多方表的JavaBean全路径
column属性:对应另一张多方表的字段
-->
<many-to-many class="com.itheima.domain.Role" column="role_id"/>
</set>
</class>
角色配置文件
<class name="com.itheima.domain.Role" table="sys_role">
<id name="role_id" column="role_id">
<generator class="native"/>
</id>
<property name="role_name" column="role_name"/>
<property name="role_memo" column="role_memo"/>
<set name="users" table="sys_user_role" cascade="save-update">
<key column="role_id"/>
<many-to-many class="com.itheima.domain.User" column="user_id"/>
</set>
</class>