Hibernate笔记=>一对多关系的映射
http://blog.sina.com.cn/s/blog_3d7bed65010004kq.html
Hibernate笔记=>对象与关系的映射基础
http://blog.sina.com.cn/s/blog_3d7bed65010004kp.html~type=v5_one&label=rela_prevarticle
Hibernate笔记=>继承关系的映射
http://blog.sina.com.cn/s/blog_3d7bed65010004lx.html~type=v5_one&label=rela_nextarticle
Hibernate笔记=>检索相关细节问题
http://blog.sina.com.cn/s/blog_3d7bed65010004o9.html~type=v5_one&label=rela_nextarticle
-----------------------------------------------------------------
Hibernate之映射继承关系(六)
http://tech.ccidnet.com/art/297/20050922/339201_1.html
Hibernate 实体关联关系映射----总结
http://lavasoft.blog.51cto.com/62575/39398
-----------------------------------------------------------------
总结:
一.类的关联关系,在hibernate中反映
1.单向关联与双向关联
单向关联是类的一方拥有对方的引用.
双向关联是类的双方都拥有对方的引用.
2.关系分类:
1对多: custom-->order; custom中有存放order的list对象的属性.
多对1: order-->custom; order中有custom对象的属性.
多对多: 1个老师有多个学生,1学生又有多个老师.
1对1: 是特殊的多对1关系.
3.表的实现:
[1]外键关联:多端有外键去关联1端.
一个人(Person)对应多个地址(Address)
mysql> desc address_1nfk;
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| addressid | int(11) | NO | PRI | NULL | auto_increment |
| addressdetail | varchar(255) | YES | | NULL | |
| personid | int(11) | YES | MUL | NULL | |
+---------------+--------------+------+-----+---------+----------------+
mysql> desc person_1nfk;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| personid | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+
多个人(Person)对应一个地址(Address)
mysql> desc address_n1kf;
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| addressid | int(11) | NO | PRI | NULL | auto_increment |
| addressdetail | varchar(255) | YES | | NULL | |
+---------------+--------------+------+-----+---------+----------------+
mysql> desc person_n1kf;
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| personid | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| addressId | int(11) | YES | MUL | NULL | |
+-----------+--------------+------+-----+---------+----------------+
[2]主键作外键关联:(只适用于一对一的关系中)
一个人(Person)对应一个地址(Address)
mysql> desc address_11pk;
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| addressid | int(11) | NO | PRI | NULL | auto_increment |
| addressdetail | varchar(255) | YES | | NULL | |
+---------------+--------------+------+-----+---------+----------------+
mysql> desc person_11pk;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| personid | int(11) | NO | PRI | | |
| name | varchar(255) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
[3]连接表关联:建一连接表,内容是person表和address表的id,(多对多一定是用连接表)
多对多的例子
mysql> desc person_nn;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| personid | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+
mysql> desc join_nn;
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| personid | int(11) | NO | PRI | | |
| addressid | int(11) | NO | PRI | | |
+-----------+---------+------+-----+---------+-------+
mysql> desc person_nn;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| personid | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+
二,类的继承关系在hibernate中的表示
1. 1子类一张表 不支持多态查询。
2. 全一张表 支持多态,查询最快,维护难。
3. 1类一表 支持多态,维护易。
分享到:
相关推荐
Hibernate对象关系映射一对多 很基础等文档
Hibernate4中映射关系图解。
Hibernate_关联关系映射配置详解,希望能帮助广大java爱好者
在IT行业中,数据库管理和对象关系映射(ORM)框架是至关重要的部分,特别是对于Java开发者而言,Hibernate是一个广泛使用的ORM工具。本主题将深入探讨Hibernate集合映射与关联关系,包括"student与Score的Map集合...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,消除了直接编写 SQL 的需要。在 Hibernate 中,映射关系是将数据库表与 Java 类之间的关联方式,使得对象模型可以与关系...
在本教程中,我们将深入探讨Hibernate中的一个关键概念——关系映射中的组件映射。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,它允许开发人员以面向对象的方式处理数据库操作,极大地简化了数据层...
实体关联关系映射是指在Hibernate框架下如何将Java对象之间的关联关系映射到数据库表中的过程。根据实体之间关联关系的不同,Hibernate提供了多种映射方式: 1. **一对一关联**(One-to-One) - 外键单向关联 - ...
在这个场景中,我们关注的是Hibernate如何处理复杂的对象关系映射,特别是涉及Employer(雇主)、Employment(雇佣期间)和Employee(员工)之间的关系。我们将深入探讨这些实体类及其在映射文件中的配置。 首先,`...
在实际应用中,Hibernate还提供了一些高级映射机制,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)的关系映射。这些映射通过@OneToOne、@OneToMany、@ManyToOne和@...
**二、Hibernate关系映射的类型** 1. **一对一(OneToOne)**: 表示一个实体对应另一个实体的唯一实例。这可以通过在两个类中都定义`@OneToOne`注解来实现,并通过`mappedBy`属性指定被引用的一方。 2. **一对多...
在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...
1. **关系映射**:Hibernate允许我们将数据库中的表与Java类之间的关系映射起来,以便于我们在程序中操作数据。关系映射主要包括一对一、一对多、多对一和多对多四种关系。 2. **配置文件**:在Hibernate中,`...
**标题:“Hibernate关系映射”** 在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为面向对象的方式,极大地简化了数据持久化的复杂性。"多对一"关系映射是Hibernate...
Hibernate是一个对象关系映射(ORM)框架,它允许我们将Java对象(实体)与数据库表进行映射,从而实现了面向对象编程和关系数据库之间的桥梁。Hibernate提供了强大的查询语言HQL(Hibernate Query Language)以及 ...
在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的方式,从而简化了数据访问层的编程。"hibernate关联关系映射"是Hibernate的核心概念之一,它定义了如何...
在Hibernate中,Set接口的实现类如HashSet和TreeSet通常用于一对多或多对多的关系映射。例如,一个用户可以有多个订单,订单也可以属于多个用户,这就形成了双向多对多关系。在映射文件中,我们通常使用`<set>`标签...
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的关联关系,...