`
ivorytower
  • 浏览: 74156 次
  • 性别: Icon_minigender_1
  • 来自: 成都-->@深圳
社区版块
存档分类
最新评论

Hibernate中的关联关系

阅读更多
初学 hibernate  时是被 hibernate 中的复杂的关系搞得晕头转向。 一对多 ,多对一,多对多。单向,双向等等

问题就出在,找不到参照方物,其实只要找准参照物,各种关系自然迎刃而解。在关系型数据库中 实际上通过主外键只支持多对一,或是一对一单向关联。

1,多对一单向关联 : 以客户表 (customer) 和定单表(orders )为例。一个客户可以发出多个定单,而一个定单只可以属于一个客户。从 orders 到customer 就是 多对一的关系。这就意味着, orders 中应该有一个 Customer类型的属性。


因为在关系型数据库中只有主外键参照关系,而且总是有 many 方参照 one 方,这样可以消除数据冗余。

所以一般是一主键表为参照物。

在hbm.xml 配置时
   <many-to-one 

                                      name="customer"

                                     column="id"

                                     class="hib.Customer"

                                      not-null="true"

                           >


name: 指定了持久化类的属性名 (Order类的 customer属性)

column : 指定属性对应的外键 (order表的 customer_id)

class :指定了持久化类的类型。

2,一对多单向关联 :从 customer 到 order 是一对多。意味着每个 customer对象会引用一组order对象。

                        所以在 customer中应该定义一个集合类型的属性,来关联所引用的 order对象。

hbm.xml 文件配置时
   
                        <set  

                             name="orders"

                             cascade="save-update"

                          >

                                    <key column ="custome_id" />  

                                   <one-to-many  class="hib.Order"/>

                         </set>

name :指定持久化类的属性名 (Customer类的 orders 属性)

<set> : 表明 Customer 类的属性类型为 java.util.Set  类型。

<one-to-many> :表明 orders 集合中存放的是一组 Order对象。

如果一个类关联另一个类,而另一个类不关联这个类。我们就认为这种关联是单向关联

两个类相互包含另一个类的属性时 我们就人认为着种关联是双向关联。

3,一对多双向关联:综合上面两种。

分享到:
评论

相关推荐

    Hibernate关联关系

    本文将以“Hibernate关联关系”为主题,详细介绍Hibernate中关联关系的创建及使用方法。 #### 关联关系概述 在关系型数据库中,实体之间通常存在一对一、一对多、多对一和多对多等关联关系。对于这些关系,...

    Hibernate 关联关系解除

    一、Hibernate关联关系介绍 在Hibernate中,关联关系主要包括以下几种: 1. 一对一(OneToOne):一个实体对应另一个实体的唯一实例。 2. 一对多(OneToMany):一个实体可以与多个其他实体相关联。 3. 多对一...

    Hibernate的关联关系映射图解

    Hibernate4中映射关系图解。

    hibernate的关联关系映射

    【hibernate的关联关系映射】在Java持久化框架Hibernate中,关联关系映射是核心功能之一,它允许对象间的复杂关系与数据库中的表结构相匹配。在选课系统这个例子中,主要涉及到的对象包括课题(Course)、教师(Teacher...

    hibernate关联关系总结

    Hibernate关联关系是Java持久化框架Hibernate中的核心概念,它允许我们在数据库中建立对象之间的关系映射,以便在程序中操作对象时,可以自动处理与数据库的交互。本篇将深入探讨Hibernate的四种主要关联关系:一对...

    hibernate实体关联关系映射

    本文旨在深入探讨Hibernate中的实体关联关系映射技术,主要包括一对一、一对多、多对多等不同类型的关联关系及其在实际开发中的应用技巧。通过本文的学习,开发者可以更好地理解和掌握Hibernate框架下的实体关联关系...

    hibernate各种常用关联关系的基本配置

    本篇文章将深入探讨Hibernate中常见的几种关联关系及其基本配置。 一、一对一(OneToOne)关联 在一对一关联中,一个实体对象只对应数据库中的一个记录。配置方式通常通过`@OneToOne`注解实现,可以设置`mappedBy`...

    基于注解的关联关系Hibernate

    在这个“基于注解的关联关系Hibernate”的主题中,我们将深入探讨如何使用Hibernate的注解来配置不同类型的关联关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-...

    Hibernate_关联关系映射配置

    本教程将详细讲解Hibernate中的关联关系映射配置,帮助你理解和掌握如何在Hibernate中设置不同类型的关联。 一、一对一(One-to-One)关联 在现实世界中,两个实体之间可能存在一对一的关系,例如一个人只有一个...

    全面解读hibernate关联关系

    hibernate关联关系详解 在Java Persistence API (JPA) 和 Hibernate 框架中,实体之间的关联关系是数据模型的重要组成部分。关联关系允许我们定义不同实体类之间的联系,如一对一、一对多、多对一和多对多。本文将...

    Hibernate_关联关系映射配置详解

    Hibernate_关联关系映射配置详解,希望能帮助广大java爱好者

    Hibernate关联关系练习【全】

    总之,Hibernate关联关系是理解其工作原理的关键,它使得Java对象和数据库记录之间的映射变得简单。通过练习,你可以掌握如何配置和使用这些关系,以及如何进行相关的查询操作,从而提升你的开发效率和代码质量。...

    hibernate关联关系实例

    在这个“hibernate关联关系实例”中,我们将深入探讨四种基本的关联关系:一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)以及多对多(Many-to-Many),同时也会涉及Hibernate查询语言(HQL)...

    hibernate一对一关联关系

    在Hibernate中,设置一对一关联关系可以帮助我们更好地管理和操作这些具有唯一对应关系的数据。 1. **配置一对一关联** - 在两个相关的实体类中,我们需要定义一个属性,该属性的类型是另一个实体类的实例。 - ...

    Hibernate注解 关联关系映射注解.docx

    在多对一的关联关系中,我们通常在“一”的那一方使用`@ManyToOne`,而在“多”的那一方使用`@JoinColumn`来指定外键。这种情况下,不需要使用`mappedBy`,因为“一”的一方通常是维护关联关系的一方。 多对多的...

    Hibernate 关联关系映射分类

    在深入探讨Hibernate关联关系映射分类之前,我们首先简要回顾一下Hibernate框架的基本概念。Hibernate是一种持久层框架,主要用于Java应用程序中的对象关系映射(ORM),它能够将面向对象的数据模型转换为数据库中的...

    Hibernate映射关联关系.pdf

    Hibernate映射关联关系.pdf

    hibernate关联映射详解

    hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的关联关系,...

    hibernate实现多对多关联关系源码

    在Java的持久化框架Hibernate中,多对多(Many-to-Many)关联关系是一种常见的实体间关系类型,它表示一个实体可以与多个其他实体相关联,反之亦然。本源码示例将深入探讨如何使用Hibernate来配置和管理这种复杂的...

Global site tag (gtag.js) - Google Analytics