• 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,备注:

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

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

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

      

     

      

  • 相关阅读:
    Net包管理NuGet(3)搭建私服及引用私服的包
    MyMql 下载以及配置
    Oracle 环境部署 以及数据库创建 ,用户新建和权限分配
    VUE.JS 环境配置
    .NET WEB API 简单搭建
    C# Timer 定时任务
    RemoTing 搭建简单实现
    MVC+EF三层+抽象工厂
    ASP.NET MVC SignalR 简单聊天推送笔记
    .net Mvc Dapper 方法封装
  • 原文地址:https://www.cnblogs.com/czb2580/p/6443231.html
Copyright © 2020-2023  润新知