Hibernate视频学习笔记(7)多对多关联映射

 

多对多关联映射单向

 

 

 

t_user

id |     name

1 | 10

2 | 祖儿

3 | 杰伦

t_role

id |        name

1 | 数据录入人员

2 | 商务主管

3 | 大区经理

t_user_role

userid | roleid

1                      | 1

1                      | 2

2                      | 2

2      | 3

3      | 1

3      | 2

3      | 3

 

 

 

 

 

 

 

 

 

 

 

 


具体映射方式:

       <set name="roles" table="t_user_role">要创建的中间表

           <key column="userid"></key>中间表中的一个字段

           <many-to-many class="com.hibernate.Roles" column="roleid"></many-to-many>中间表的另一个字段

       </set>

 

双向:

       <set name="users" table="t_user_role">

           <key column="roleid"></key>

           <many-to-many class="com.hibernate.Users" column="userid"></many-to-many>

       </set>

 

inverse用于一对多,多对多

 

table属性必须和单向关联中的table属性值一致

keycolumn属性要与单向关联中many-to-many中的column属性值一致

many-to-many中的column属性值要与单向关联中key标签的column属性值一致

 

                     Roles r1 = new Roles();

                     r1.setName("r1");

                    

                     session.save(r1);

                    

                     Roles r2 = new Roles();

                     r2.setName("r2");  

                     session.save(r2);

                    

                     Roles r3 = new Roles();

                     r3.setName("r3");

                     session.save(r3);

                    

                     Users u1 = new Users();

                     Set u1Roles = new HashSet();

                    

                     u1Roles.add(r1);

                     u1Roles.add(r2);

                     u1.setName("u1");

                     u1.setRoles(u1Roles);

                    

                     session.save(u1);

你可能感兴趣的:(Hibernate)