Hibernate中映射文件理解

   1)不管是一般的集合,还是一对多、多对多关系,都要使用到set,区别只是前者set中为一般类型,后者为对象。

        具体写法:

       一般类型

      <set name="addressSet" table="user_address_set">
          <key column="userId"/>
          <element type="string" column="address"/>
      </set>
     一对多映射

         <set name="employees" table="t_employees">
            <key column="departmentId"/>
            <one-to-many class="cn.com.cpf.pojo.Employee"/>
         </set>
      <many-to-one name="department" class="cn.com.cpf.pojo.Department" column="departmentId"></many-to-one>
       多对多映射

  <set name="students" table="teacher_student" inverse="true">
        <key column="teacherId"/>
        <many-to-many class="cn.com.cpf.pojo.Student" column="studentId"/>
  </set>
  <set name="teachers" table="teacher_student">
        <key column="studentId"/>
        <many-to-many class="cn.com.cpf.pojo.Teacher" column="teacherId"/>
  </set>
        说明:

       1>所有的key指的都是中间表中映射本表主键的那个列

       2>所有的name指的都是本类中的属性名称

       3>如果set中元素为一般类型,那么set中使用element元素,指定类型和对应的中间表的列

       4>如果set中元素为类,那么set中根据情况使用one-to-many或many-to-many,使用class指定类型

   2) inverse属性

        1> 在一对多关系中,inverse表示是否自己来设置多的那张表中的外键值

        2> 在多对多关系中,inverse表示是否自己来往中间表中插入数据

        3> inverse讨论的只是外键的操作,cascade讨论的是关联对象操作时候的关系

   3) 单向关系

         单向一对多

         单向多对一

         单向多对多

         一对一

        对于单向关系,只能从维护外键的那一方进行解除关系和删除操作

   4) 操作总结

        1> 保存

             不管何种关联关系,有没有关系,都直接save即可

            注意:建议先保存没有外键的一方,这样就可以先生成id,那么有外键的一方保存的时候就可以直接保存,而不用update了

       2 > 解除关联关系

            实质也就是设置关联的另一方为null

           注意:只有维护关联关系,且不是主键关联的才能解除

       3> 删除对象

           从维护关系的一方删除肯定不会有问题,因为外键就在这里,直接删即可

           从没有外键的一方删除会有问题,因为已经被另一方引用了主键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值