hibernate - 多对多配置

JAVA学习网 2020-11-23 15:52:04

用户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>
阅读(2430) 评论(0)