`

Hibernateday04学习笔记

 
阅读更多

一对多
 O           Dept                                              Employee
关系属性:Set<Employee> emps=new HashSet<Employee>             Dept
 R    表
    t_dept      普通的字段
    t_employee  普通的字段+d_id(外键)
 M  映射文件
    <class name=" xx" table="Dept">
      <id ....></id>
      ...
      <!--关系属性
        为了减少多次更新的操作,inverse="true":是key标签失效
      -->
      <set name="关系属性的名称" cascade="save-update" inverse="true">
        <key column="d_id"/><!--外键-->
        <one-to-many class="Employee"/>
      </set>
    </class>
    <class name="Employee" table="employee">
      <id>....</id>
       ....
       <!--关系属性 employee 有一个外键列 d_id-->
       <many-to-one name="dept" class="Dept" column="d_id"    
              cascade="save-update"></many-to-one>
      </class>

  当设置cascade=save-update 删除不级联删除
  1.如果删除的当前对象能够获得明确的外键列的话,可以直接删除,不用再内存中解除关系
  2.如果删除的当前对象不能获得明确的外键列的话,要先解除关系在删除
      注意:inverse="true"

  保存对象时,如果有关联对象,要现在内存中确定他们的关系,而且应该能双向设置

一对多的自身相关
   以Emp表为例:一个雇员会有多个下属,一个雇员也只能有一个上级


从员工找经理(1:1)
class Emp{//配置员工
 Integer empNo  
 String eName                    
 String job                       
 Emp mrg //经理也是员工,我们需要获得是Emp而不是一个经理的empNo           
 Date  hireDate                      
 Double sal  //如果表当中的该字段允许为null ,对象中应该使用封装类     
 Double comm                         
 Integer deptNo
}

从经理找员工{1:*}
class Emp{
 Integer empNo  
 String eName                    
 String job                       
 Integer mrg        
 Date  hireDate                      
 Double sal   
 Double comm                         
 Integer deptNo
 Set<Emp> undering;//关系属性
}

自身相关的双向关系
 class Emp{
   Integer empNo  
   String eName                    
   String job                       
   Emp mrg    //可以从员工查找经理    
   Date  hireDate                      
   Double sal   
   Double comm                         
   Integer deptNo
   Set<Emp> undering;//可以从经理查找员工
 }

 多对多
O           Student      Course 一个学生有多门课程,一个课程有多个学生
               *      :   *
关系属性  Set<Course>    Set<Student>

R 如何在数据库中表明多对多的关系,提供第三张表,作为关系表
 t_student           t_course           关系表  t_s_c
   id name   age      id  name  score            s_id   c_id 两列联合唯一
    1 haoren 22       1  java   1                1      1
    2 clam   23       2  c++    1                1      2

M 多对多映射文件 三张表两个外建

分享到:
评论

相关推荐

    Java学习笔记学习笔记

    Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...

    希沃白板学习笔记.pdf

    希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf

    2022吴恩达机器学习笔记汇总(共10章节).zip

    2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip...

    Springcloud学习笔记.md

    Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...

    人工智能学习笔记,人工智能学习笔记

    人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能...

    CCNA学习笔记 CCNA学习笔记

    CCNA学习笔记 CCNA学习笔记 CCNA学习笔记

    云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-基于ssm的云的学习笔记系统-ssm-java代码

    云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...

    云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-基于Web的云的学习笔记系统设计与实现-java代码

    云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...

    nginx学习笔记(软件+学习笔记)

    nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) ...

    docker学习笔记.md

    docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,...

    PHP个人学习笔记

    PHP个人学习笔记

    ssh学习笔记1 ssh学习笔记1

    ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1

    contiki 学习笔记

    Contiki学习笔记:进程、事件、etimer关系 Contiki 实例: Contiki学习笔记:创建两个交互进程 Contiki 主函数剖析: Contiki学习笔记:main函数剖析 Contiki学习笔记:启动一个进程process_start Contiki学习笔记...

    java学习笔记.zip

    java学习笔记java学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记...

Global site tag (gtag.js) - Google Analytics