还是参照员工与部门的例子,从员工角度看,员工与部门是多对一的关联;而从部门角度
看,部门与员工则是一对多的关系,需要修改的代码如下:
部门类 (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映射一对多关联关系 #### 知识点概览 - **概念解析**:一对多(One-to-Many)关联关系的概念及其在Hibernate中的实现方式。 - **域模型设计**:创建具有一个实体与多个实体关联的域模型。 - **关系...
相对应地,多对一(Many-to-One)关系则是从多个实体指向一个单一实体的关联。理解这两种配置的区别对于进行高效的数据操作至关重要。 **一对多关系详解:** 在Hibernate中,一对多关系通常用在父类(拥有端)和...
"多对多双向关联"是Hibernate中一种关系映射类型,涉及两个实体类之间的复杂关联。在数据库设计中,多对多关系意味着一个实体可以与多个其他实体相关联,反之亦然。例如,学生可以选修多门课程,课程也可以被多名...
总结起来,Hibernate中的一对多/多对一关联是通过主外键映射来实现的,通过注解和配置文件定义实体间的关联关系,利用懒加载或立即加载策略控制数据获取,同时要注意双向关联的维护和级联操作的设置,以确保数据的...
下面将详细探讨Hibernate中一对多关联的概念、配置、实现以及相关最佳实践。 **1. 概念理解** 在数据库设计中,一对多关联是指一个表的记录可以与另一个表的多个记录相关联。在Hibernate中,这可以通过在映射文件或...
"hibernate多对一关联映射"是Hibernate中一种常见的关系映射类型,用于处理实体类之间的一端指向多端的关系。在数据库中,这通常表现为一个表的记录可以与另一个表的多个记录相关联。 首先,我们需要理解多对一关联...
对于初学者来说,通过阅读和分析这样的例子,能更好地理解和掌握Hibernate中一对多、多对一以及双向关联的实践应用。 总结,学习和理解Hibernate中的一对多、多对一和双向关联关系,对于开发基于Java的持久化层至关...
首先,我们需要理解在Hibernate中一对多关联的基本概念。在Java对象中,这通常通过在一方类(拥有多个实例的一方)上定义一个集合属性来表示。这个集合可以是List、Set或Map等,它包含另一方类的实例。在映射文件...
在本主题"Hibernate单向一对多关联映射(XML版)"中,我们将深入探讨如何使用XML配置来实现数据库中一个实体类对应多个实体类的关联关系。 在Hibernate中,一对多关联是一种常见的关系映射类型,它反映了数据库中的...
本篇文章将深入探讨Hibernate中一对多单向关联映射的概念、配置以及其实现方法。 一、概念理解 一对多关联意味着在数据库中,一个表(实体)的一条记录可以对应另一个表(实体)的多条记录。例如,一个学生可以有多...
这篇教程将深入探讨Hibernate的关联关系,包括1对1、一对多和多对多等类型,并通过简单的代码示例帮助初学者理解和应用。 1. **1对1关联关系** 在数据库设计中,1对1关联意味着一个表的记录最多对应另一个表的一条...
在子类(如“课程”)的映射文件中,使用`<many-to-one>`元素来表示多对一的关系。`class`属性指定父类的全限定类名,`column`属性对应父类在子类表中的外键字段。 ```xml ``` 3. **双向关联的实现** 双向...
**hibernate_second项目源码**是一...通过详细研究**hibernate_second**项目,开发者不仅可以掌握Hibernate中一对多双向关联的实现,还能学习到如何在实际项目中有效管理数据库操作,提升Java应用程序的数据处理能力。
`inverse`属性是Hibernate中一对多关联映射的一个关键设置,用于控制关联维护的一方。在一对多关系中,通常有一方负责保持关系的完整性,这被称为“主控方”或“拥有方”。另一方则称为“被控方”或“依赖方”。 ...
下面将详细阐述Hibernate中一对多关系的配置和实现。 首先,我们要理解在数据库层面的一对多关系。在一个部门表(如DEPARTMENTS)和一个员工表(如EMPLOYEES)中,部门表通常有一个主键(如DEPARTMENT_ID),而员工...
本篇文章将深入探讨`Hibernate`中一对多关系使用`Set`和`List`的区别以及它们的实现方式。 首先,我们要理解`Set`和`List`在Java集合框架中的本质区别。`Set`不包含重复元素,且内部元素有序,但插入顺序不保证;而...
总结,双向一对一基于主键的关联映射是Hibernate中一种重要的关联类型,它提供了两个实体类之间的直接导航属性,使得数据操作更加便捷。在实际项目中,需要根据需求谨慎选择关联类型,并确保数据一致性。
3. **关联映射**:包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)四种关系映射,用于描述对象之间的关联关系。 三、配置关系映射 关系映射的配置主要通过以下两种方式...
映射继承关系是Hibernate中一项高级特性,它允许你将面向对象的设计模式映射到关系型数据库中。选择正确的映射策略取决于许多因素,包括性能需求、数据一致性和应用程序架构。通过了解这些不同的映射策略,你可以更...
在Hibernate中,映射关系是其核心功能之一,它定义了对象与数据库表之间的对应规则,包括一对一、一对多、多对一和多对多四种主要关系。接下来,我们将深入探讨这些映射关系。 一对一(OneToOne)关系: 在数据库...