- 浏览: 7189454 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (397)
- 架构研究 (44)
- 网络协议-TCP/HTTP (20)
- SPRING (23)
- HIBERNATE 3 (30)
- STRUTS 2 (20)
- Java/J2se (25)
- Servlet/Jsp (9)
- 开发工具IDE (10)
- WEB服务器 (17)
- 前端--Java Script (33)
- 前端--CSS (7)
- OS--Linux (31)
- OS--MAC OS (19)
- MySQL数据库 (19)
- Oracle数据库 (11)
- 项目管理工具 (12)
- 数据报表技术 (4)
- 图像处理技术 (10)
- 其它综合技术 (13)
- 权限管理 (1)
- MyBatis (1)
- 网络安全 (6)
- IO (21)
- PostgreSQL (2)
- Eclipse RCP (1)
- GWT (1)
- 算法 (3)
- Storm (2)
- zookeeper (3)
- 消息 (1)
最新评论
-
bukebuhao:
已解决,打开文件太多。ulimit -n 上次临时生效后再次s ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
bukebuhao:
ds重启后启动不了。报错信息如下,请大神帮助[2018-08- ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
墨上清:
感谢,看完有了一个完整的知识网络。
Spring MVC 教程,快速入门,深入分析 -
云卷云舒灬:
谢谢,学到很多
Spring MVC 教程,快速入门,深入分析 -
luozhy:
非常感谢非常感谢
Project Web Access ActiveX控件 安装
package dao.po; import java.util.Set; /** * 部门类 * * @author zl * */ public class Department { private int id; //部门的ID private String name; //部门的名称 private Set<Employee> emps; //部门下的所有员工 (一对多关系) }
package dao.po; /** * @author zl 员工类 */ public class Employee { private int id; // 员工的ID private String name; // 员工的名称 private Department depart; //员工所在部门 (是多对一关系) }
映射文件 :
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="dao.po"> <class name="Department"> <id name="id"> <generator class="native"/> </id> <property name="name" not-null="true" length="255" column="`name`"/> <set name="emps"> <!-- emps 是Department的一个属性 --> <key column="depart_id"></key> <!-- 通过员工表的 depart_id字段来关联,它是字段名 --> <one-to-many class="Employee"/> <!-- emps的类型是Employee --> </set> </class> </hibernate-mapping>
下面是重点:
<set name="emps"> <!-- emps 是Department的一个属性 -->
<key column="depart_id"></key> <!-- 通过员工表的 depart_id字段来关联,它是字段名 -->
<one-to-many class="Employee"/> <!-- emps的类型是Employee -->
</set>
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="dao.po"> <class name="Employee"> <id name="id"> <generator class="native"/> </id> <property name="name" not-null="true" length="255" column="`name`"/> <!-- 这里做多对一映射 --> <!-- name="depart"是Employee类的属性名 --> <!-- column="depart_id" 是表中字段名 --> <!-- --> <many-to-one name="depart" column="depart_id" not-null="true"></many-to-one> </class> </hibernate-mapping>
一对多 (一个部门 对 多个员工)
查询部门(部门下有员工)
public static void main(final String[] args) { final Department de = query(2); final Set<Employee> set = de.getEmps(); //本部门的所有员工 for (final Employee em : set) { System.out.println(em.getName()); } } /** * 查询部门(部门下有员工) * * @param id * 部门ID * @return 部门对象 */ public static Department query(final int id) { Session session = null; try { session = HibernateUtil.getSeesion(); final Transaction tx = session.beginTransaction(); final Department de = (Department) session.get(Department.class, id); //按ID查 //因为 部门的 "员工" 属性会懒加载, //在session关闭后,调用de.getEmps()无法取到员工信息 //所以这里用 Hibernate.initialize(de.getEmps()) 提前加载一下. Hibernate.initialize(de.getEmps()); tx.commit(); return de; } finally { if (session != null) { session.close(); } } }
- My-Hibnate.rar (13.3 KB)
- 下载次数: 59
评论
2 楼
明天的昨天
2010-03-15
楼主我个应该是 一对多种的 双向关联
单向关联是否能够再总结下
Hibernate 一会单向 一会双向 很难分辨啊
不知道楼主是否有较好的学习方法
单向关联是否能够再总结下
Hibernate 一会单向 一会双向 很难分辨啊
不知道楼主是否有较好的学习方法
1 楼
keer2345
2009-04-28
谢谢,真正的学到了一些东西。简单而有用,支持一下~~
发表评论
-
Hibernate二级缓存 ---- 最佳实践
2010-11-08 10:17 39286作者:赵磊 博客:ht ... -
Hibernate--泛型DAO
2010-06-27 19:49 5057泛型DAO(翻译) http://www.iteye.com ... -
Hibernate--空位
2010-06-27 15:41 1797原文章已合并整理到: http://elf8848.itey ... -
Hibernate二级缓存 ---- 入门示例
2010-06-27 15:34 4151一. 我们使用oscache来演示 , 引入oscache的j ... -
Hibernate 操作Blob Clob
2010-06-14 16:50 5251Photo.java import java.sql.Bl ... -
Hibernate ---- 控制日志
2010-06-06 11:46 3043Hibernate版本 3.3或3.4 Hibernate ... -
Hibernate悲观锁定与乐观锁定
2010-05-17 15:08 2242悲观锁定 由数据库方面实现. 可见:Hibernate悲观锁 ... -
Hibernate懒加载深入分析
2010-05-14 11:22 8283[size=small] ------------------ ... -
Hibernate批量操作(JDBC批量操作)
2009-03-30 14:52 8402部分内容转自 :http://ga ... -
Hibernate分页查询与泛型
2009-03-26 19:03 7358JE有两篇文章,关于分页查询 与泛型 的,写的很好.这里收藏一 ... -
20 Hibernate 1+N问题的原理与解决
2009-03-04 09:44 13076什么时候会遇到1+N的问题? 前提:Hibernate默认表 ... -
19 Criteria查询,DetachedCriteria离线查询 --做综合查询
2009-03-04 09:35 3732通过Session得到Criteria类的对象 /** ... -
空位空位
2009-03-03 10:22 2334空位空位空位空位 -
17 继承(四)每一个具体的类 映射到一张表
2009-03-02 13:54 2297类(Person) , 男人(Men)继 ... -
16 继承(三)(把前面14,15讲的情况结合起来)
2009-03-02 13:30 2092人类(Person) , 男人(Men)继承"人& ... -
15 继承(二)(每个子类扩展的属性单独保存在一张表中)
2009-03-02 13:07 2069人类(Person) , 男人(Men)继承" ... -
14 继承(一)(整个继承树映射到一张表)
2009-03-02 11:00 2226人类(Person) , 男人(Men)继承" ... -
13 级联和关系维护(Cascade 和Inverse)
2009-03-01 17:58 3040Cascade用来说明当对主对象进行某操作时, 是否对其关联的 ... -
12 映射-- 集合类的映射(Set,List,Map,Array)
2009-03-01 16:18 2622部门类Department , 他有 empa1, emp ... -
11 映射-- 组件映射(人类与姓名类)
2009-03-01 15:26 2362User类: 注意他的name属性 package ...
相关推荐
本文将深入探讨“7 映射-- 多对一(员工对部门)”这一主题,它主要涉及Java持久化框架Hibernate中的对象关系映射(ORM)技术。 在企业信息系统中,员工和部门的关系通常表现为多对一的关系。这意味着一个部门可以有...
本教程将深入探讨Spring和Hibernate结合使用时的一对多关联映射,特别是部门与员工表的级联添加。 在数据库设计中,一对多关联是一个常见的关系类型,例如一个部门可以有多名员工,但每个员工只能属于一个部门。在...
在数据库关系模型中,一对多关系是常见的关联类型,例如一个学生可以对应多个课程,一个部门可以有多个员工等。MyBatis提供了一对多映射功能,使得在Java对象中可以直接获取到这种关联关系的数据。 1. **配置一对多...
Ibatis,作为一个轻量级的Java ORM框架,提供了强大的功能来处理复杂的数据映射,其中包括一对多的关系映射。在这个场景下,我们将深入探讨Ibatis如何实现一对多的关系映射。 一对多关系在数据库设计中非常常见,它...
一对多映射指的是一个父类实体对应多个子类实体的关系,例如一个学生可以有多个课程,一个部门可以有多名员工等。 一、一对多映射的基本概念 在数据库中,如果一个表的记录(主表)与另一个表的记录(从表)之间...
在本章中,我们将深入探讨Hibernate中的关联映射,包括一对多、多对一以及多对多的关系。这些映射关系对于理解如何在Java应用程序中有效地管理数据库对象至关重要。 首先,我们来解决描述中提到的问题。`...
在Java的持久化框架Hibernate中,一对多映射是一种常见的对象关系映射(ORM)配置方式,用于模拟数据库中的关联关系。在这个场景中,一个实体(类)可以拥有多个其他实体实例,就像在数据库中一个表的一条记录可以...
一对多关联意味着一个实体(如部门)可以有多个关联实体(如员工),而反过来,每个员工只属于一个部门。单向关联则表示只有部门知道其下的所有员工,员工并不知道它们所属的部门。 二、配置映射文件 在Hibernate中...
一对多映射表示一个实体(如部门)可以关联多个实体(如员工)。在数据库层面,这通常表现为一个表(部门表)的记录对应另一个表(员工表)的多个记录。 **配置方式**: 在Hibernate中,一对多映射通过`<set>`或`...
对于一对多的关系,例如一个部门有多名员工,MyBatis提供了以下方法进行映射: 1. **使用collection标签**:在resultMap中使用collection标签,指定一对多关联的集合类型(如List),通过column属性设置关联的外键...
在本示例中,我们将深入探讨如何在EF6中配置和使用多对多和一对多关系,特别是针对Oracle数据库的配置。 首先,多对多关系是指两个实体类型之间存在多个连接,每个实体都可以关联到多个实例。例如,一个学生可以...
在这个“hibernate学习入门之一对多实体映射源码”教程中,我们将深入探讨如何在Hibernate中设置和管理一对多的关系。 一、Hibernate简介 Hibernate是Java开发人员用于处理数据库操作的强大工具,通过它,我们可以...
`表示一个部门可以拥有多个员工,这是一个一对多关系。而在`Employee`类中,`private Dept dept;`表示一个员工隶属于一个部门,这是多对一关系。在映射配置文件中,需要使用`@OneToMany`和`@ManyToOne`注解来指定...
在数据库设计中,一对多关联是指一个实体可以与多个其他实体相关联,比如一个学生可以有多个课程,一个部门可以有多名员工。在Hibernate中,这种关系可以通过XML映射文件来配置。首先,我们需要在两个实体的映射文件...
在数据模型中,一对多关系是常见的映射类型,包括单向和双向映射。本文将深入探讨这两种映射方式,并通过 Hibernate 框架的配置来解释其实现细节。 首先,一对多关系意味着一个实体可以与多个其他实体相关联。例如...
在现实世界中,一对多关系非常常见,例如一个班级有多名学生,一个部门有多名员工。在EJB3中,我们可以通过`@OneToMany`注解来表示这种关系。以下是一个简单的例子: 1. 定义父类("多"的一方): ```java @Entity ...
为了正确地将一对多关系映射到数据库中,需要在“多”的一端创建外键指向“一”的一端。 - 例如,在员工和部门的关系中,一个部门可以有多个员工。因此,在员工表中添加一个部门ID的外键字段,用来引用部门表中的...
本文将深入探讨如何利用Hibernate实现数据库表间的一对一、一对多和多对多映射,并通过示例代码演示如何向数据库添加数据。 ### 1. 一对一映射 一对一映射通常用于表示两个实体之间有唯一对应关系的情况。在...
比如,一个部门可以有多个员工,部门与员工的关系就是一对多。在MyBatis中,使用`<collection>`标签来处理这种关系。同样,设置`property`为Java对象中的集合字段名,`javaType`通常为List或Set,` ofType`指定集合...