`

Hibernate中一对多的关联关系

阅读更多

还是参照员工与部门的例子,从员工角度看,员工与部门是多对一的关联;而从部门角度

 

看,部门与员工则是一对多的关系,需要修改的代码如下:

 

部门类 (Department.java):

 

public class Department {

       private int id ;
       private String name ;
       
       private Set emps ;             // 用于员工的集合

     ...getter/setter
}

 

部门对应的映射文件 (department.hbm.xml):

 

......

<class name="Department">

...
     <set name="emps">         // Department类中的集合变量
               
               <key column="depart_id"/>                // 外键,employee表中的字段
               <one-to-many class="Employee">      // 集合中存放的对象

     </set>
...

</class>

......

 

测试代码,首先添加一个部门信息,然后添加两个员工信息,最后查询部门信息,看查询结

 

果是否能查询到那两个员工的信息,代码如下:

 

.......

// 省略了一些Hibernate代码

/*
    1. 实例化一个部门信息
*/

Department depart = new Department () ;
depart.setName ("depart name") ;

/*
    2. 实例化两个员工信息
*/

Employee emp1 = new Employee () ;
emp1.setDepart (depart) ;
emp1.setName ("emp1 name");

Employee emp2 = new Employee () ;
emp2.setDepart (depart) ;
emp2.setName ("emp2 name");

/*
    3. 查询此部门信息,然后查看其下的员工数目是否为2个
*/

// 省略部分代码

Department depart = (Department)s.get (Department.class , departid) ;
Systemt.out.println ("emp size:" + depart.getEmps().size () ) ;

/*
    4. 调用3中的方法,传一个部门编号为1
*/

首先查询部门表,查询部门编号为1的部门信息,然后再从员工表中查询部门编号为1的员工信息,所以输出结果为2,为什么会按部门编号在员工表中查询呢?主要原因是在department.hbm.xml文件中配置了<key column="depart_id"/>


......

 

 

分享到:
评论

相关推荐

    Hibernate映射一对多关联关系

    ### Hibernate映射一对多关联关系 #### 知识点概览 - **概念解析**:一对多(One-to-Many)关联关系的概念及其在Hibernate中的实现方式。 - **域模型设计**:创建具有一个实体与多个实体关联的域模型。 - **关系...

    hibernate中一对多配置

    相对应地,多对一(Many-to-One)关系则是从多个实体指向一个单一实体的关联。理解这两种配置的区别对于进行高效的数据操作至关重要。 **一对多关系详解:** 在Hibernate中,一对多关系通常用在父类(拥有端)和...

    hibernate多对多双向关联

    "多对多双向关联"是Hibernate中一种关系映射类型,涉及两个实体类之间的复杂关联。在数据库设计中,多对多关系意味着一个实体可以与多个其他实体相关联,反之亦然。例如,学生可以选修多门课程,课程也可以被多名...

    hibernate基于主外键的一对多/多对一关联

    总结起来,Hibernate中的一对多/多对一关联是通过主外键映射来实现的,通过注解和配置文件定义实体间的关联关系,利用懒加载或立即加载策略控制数据获取,同时要注意双向关联的维护和级联操作的设置,以确保数据的...

    hibernate 一对多关联

    下面将详细探讨Hibernate中一对多关联的概念、配置、实现以及相关最佳实践。 **1. 概念理解** 在数据库设计中,一对多关联是指一个表的记录可以与另一个表的多个记录相关联。在Hibernate中,这可以通过在映射文件或...

    hibernate多对一关联映射

    "hibernate多对一关联映射"是Hibernate中一种常见的关系映射类型,用于处理实体类之间的一端指向多端的关系。在数据库中,这通常表现为一个表的记录可以与另一个表的多个记录相关联。 首先,我们需要理解多对一关联...

    hibernate一对多,多对一,一对多双向关联

    对于初学者来说,通过阅读和分析这样的例子,能更好地理解和掌握Hibernate中一对多、多对一以及双向关联的实践应用。 总结,学习和理解Hibernate中的一对多、多对一和双向关联关系,对于开发基于Java的持久化层至关...

    Hibernate一对多使用非主键关联设置

    首先,我们需要理解在Hibernate中一对多关联的基本概念。在Java对象中,这通常通过在一方类(拥有多个实例的一方)上定义一个集合属性来表示。这个集合可以是List、Set或Map等,它包含另一方类的实例。在映射文件...

    Hibernate单向一对多关联映射(XML版)

    在本主题"Hibernate单向一对多关联映射(XML版)"中,我们将深入探讨如何使用XML配置来实现数据库中一个实体类对应多个实体类的关联关系。 在Hibernate中,一对多关联是一种常见的关系映射类型,它反映了数据库中的...

    Hibernate一对多单向关联映射

    本篇文章将深入探讨Hibernate中一对多单向关联映射的概念、配置以及其实现方法。 一、概念理解 一对多关联意味着在数据库中,一个表(实体)的一条记录可以对应另一个表(实体)的多条记录。例如,一个学生可以有多...

    hibernate关联关系

    这篇教程将深入探讨Hibernate的关联关系,包括1对1、一对多和多对多等类型,并通过简单的代码示例帮助初学者理解和应用。 1. **1对1关联关系** 在数据库设计中,1对1关联意味着一个表的记录最多对应另一个表的一条...

    hibernate对映射xml的一对多的双向关联详解

    在子类(如“课程”)的映射文件中,使用`&lt;many-to-one&gt;`元素来表示多对一的关系。`class`属性指定父类的全限定类名,`column`属性对应父类在子类表中的外键字段。 ```xml ``` 3. **双向关联的实现** 双向...

    hibernate_second项目源码

    **hibernate_second项目源码**是一...通过详细研究**hibernate_second**项目,开发者不仅可以掌握Hibernate中一对多双向关联的实现,还能学习到如何在实际项目中有效管理数据库操作,提升Java应用程序的数据处理能力。

    hibernate inverse 个人总结.doc

    `inverse`属性是Hibernate中一对多关联映射的一个关键设置,用于控制关联维护的一方。在一对多关系中,通常有一方负责保持关系的完整性,这被称为“主控方”或“拥有方”。另一方则称为“被控方”或“依赖方”。 ...

    hibernate 一对多

    下面将详细阐述Hibernate中一对多关系的配置和实现。 首先,我们要理解在数据库层面的一对多关系。在一个部门表(如DEPARTMENTS)和一个员工表(如EMPLOYEES)中,部门表通常有一个主键(如DEPARTMENT_ID),而员工...

    hibernate 一对多 set 与 list 分别用法

    本篇文章将深入探讨`Hibernate`中一对多关系使用`Set`和`List`的区别以及它们的实现方式。 首先,我们要理解`Set`和`List`在Java集合框架中的本质区别。`Set`不包含重复元素,且内部元素有序,但插入顺序不保证;而...

    hibernate 双向一对一基于主键的关联映射

    总结,双向一对一基于主键的关联映射是Hibernate中一种重要的关联类型,它提供了两个实体类之间的直接导航属性,使得数据操作更加便捷。在实际项目中,需要根据需求谨慎选择关联类型,并确保数据一致性。

    Hibernate关系映射

    3. **关联映射**:包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)四种关系映射,用于描述对象之间的关联关系。 三、配置关系映射 关系映射的配置主要通过以下两种方式...

    用Hibernate映射继承关系

    映射继承关系是Hibernate中一项高级特性,它允许你将面向对象的设计模式映射到关系型数据库中。选择正确的映射策略取决于许多因素,包括性能需求、数据一致性和应用程序架构。通过了解这些不同的映射策略,你可以更...

    hibernate 映射关系

    在Hibernate中,映射关系是其核心功能之一,它定义了对象与数据库表之间的对应规则,包括一对一、一对多、多对一和多对多四种主要关系。接下来,我们将深入探讨这些映射关系。 一对一(OneToOne)关系: 在数据库...

Global site tag (gtag.js) - Google Analytics