hiernate 级联关系

一对一:
     主控方:(Channel)
                   <one-to-one  name="channelCount" class="ChannelCount" cascade="all"(级联关系)>
                   </one-to-one>
     约束方:(ChannelCount)
                   <id name="id" type="java.lang.Integer" column="channel_id">
                            <generator class="foreign"></generator>
                    </id>
                   <one-to-one  name="channel" class="Channel" constrained="true"(约束)>
                   </one-to-one>

双向一对多:user (一) 表   address(多)
               user:   <set name="address" inverse="true" cascade="all"   table="address">
                                        <key column="user_id"></key>
                                        <one-to-many class="Address"/>
                              </set>
inverse:控制反转,由address控制;

cascade:级联操作,只要user有改变或删除address也会改变删除

                address:<many-to-one   name="user" class="User" cascade="none" column="user_id" >
                                 </many-to-one>

多对多:(需要中间表)  role(角色)   group(分组)  group_role(中间表)
                role:<set name="groups" table="group_role" lazy="false"  cascade="save-update">
                                  <key column="role_id"></key>
                                  <many-to-many class="Group" column="group_id">
                                  </many-to-many>
                           </set>
                group:<set name="roles" table="group_role" lazy="false"  cascade="save-update">
                                  <key column="group_id"></key>
                                  <many-to-many class="Role" column="role_id">
                                  </many-to-many>
                           </set>


                        

猜你喜欢

转载自blog.csdn.net/brangUzi/article/details/81199411