zoukankan      html  css  js  c++  java
  • hibernate关联关系查询

    关联关系

    一对一 A中包含B的对象,B中包含A的对象

    一对多 A中包含B的集合,B中包含A的对象

    多对多 A中包含B的集合,B中包含A的集合

    1,一对多配置

      一名老师可以对应多名学生

    2,模型类

        老师类中包含学生的集合(通常可以将集合直接进行初始化)

        学生类中包含老师的对象

    3,配置

      

     1 TeacherModel.hbm.xml(教师)
     2                 <hibernate-mapping package="cn.itcast.h3.realtion.one2many.vo" >
     3                     <class name="TeacherModel" table="tbl_teacher">
     4                         <id name="uuid">
     5                             <generator class="native"/>
     6                         </id>
     7                         <property name="teacherName"/>
     8                         <property name="nick"/>
     9                         <!-- name:集合对象名 -->
    10             <set name="students">
    11                 <!-- 使用key描述对应的关系表中的外键字段 -->
    12                 <!-- column:外键字段名(student表中) -->
    13                 <key column="teacherUuid"/>
    14                 <!-- 使用one-to-many配置关联关系 -->
    15                 <!-- class:配置对应的关系模型类 -->
    16                 <one-to-many class="cn.itcast.h3.one2many.StudentModel"/>
    17                         </set>
    18                     </class>
    19                 </hibernate-mapping>
    20             注意:key元素必须出现在one-to-many元素的前面,否则报错
    21             StudentModel.hbm.xml(学生)
    22                 <hibernate-mapping package="cn.itcast.h3.realtion.one2many.vo" >
    23                     <class name="StudentModel" table="tbl_student">
    24                         <id name="uuid">
    25                             <generator class="native"/>
    26                         </id>
    27                         <property name="studentName"/>
    28                         <property name="className"/>
    29                            <!-- 配置多对一关系中的一方对象 -->
    30                         <!-- many-to-one描述多对一关系 -->
    31                         <!-- name:对象名 -->
    32                         <!-- column:外键字段名(student表中) -->
    33                         <!-- class:配置对应的关系模型类 -->
    34                         <many-to-one 
    35                             name="teacher"
    36                             column="teacherUuid"
    37                             class="cn.itcast.h3.one2many.TeacherModel"
    38                             />
    39                     </class>
    40                 </hibernate-mapping>

    4,资源注册  

    <mapping resource="cn/itcast/h3/one2many/vo/StudentModel.hbm.xml"/>
                   <mapping resource="cn/itcast/h3/one2many/vo/TeacherModel.hbm.xml"/>

    5,备注:

      两边的配置也可以只配置一方,

      如果仅仅配置老师可以通过老师找到学生,但是不能通过学生找到老师

      如果只配置学生可以通过学生找到老师,但是不能通过老师找到学生

      

     

      

  • 相关阅读:
    docker 安装es
    Redis 和 Zookeeper 到底谁更牛?
    Redisson 看门狗
    记一次线上服务CPU 100%的处理过程
    必须了解的mysql三大日志-binlog、redo log和undo log
    python学习笔记 -- reduce合并减少
    Python学习笔记 -- 列表2: 遍历:嵌套列表, 将其中同位置的元素组成新的列表
    python学习笔记 -- filter() 过滤符合条件的可迭代序列
    python学习笔记 -- map() 操作可迭代序列
    python学习笔记
  • 原文地址:https://www.cnblogs.com/czb2580/p/6443231.html
Copyright © 2011-2022 走看看