Hibernate征途(四)之映射 序

本文概述了Hibernate映射的概念,对比了关系模型与对象模型中的映射差异,并对映射进行了分类,包括复用型映射、数量和方向型映射等。目标是建立对象与对象之间的关联,以实现面向对象的思想操作数据。

    映射是Hibernate中重要的一部分,是使用Hibernate的基础,前几篇博客写的都是如何将关系模型中的数据与对象模型关联起来,是数据的对应;这篇博客要说的是映射,是关系的对应:如何将关系模型中的关系对应到对象模型中及如何在对象模型中建立新的关联。

O与R的映射差异

    在说Hibernate中的映射之前,先说一下关系模型中的映射,使用过关系型数据库的都知道,数据的基本对应方式有三种:一对一、一对多、多对多,这点和下面要说的Hibernate中的映射非常类似,但是毕竟O和R只是类似的,而不是相同的,二者还是有差异的。单就这三种对应方式在O和R中,差异来源于关联的方向性:关系模型中,关联是没有方向的,而在对象中关联是有方向的(双向)。在我看来,这种方向性如下图所示:

    关系模型

    

    如上图所示,如果我知道groupId=1,那么我可以知道groupId=1下都有哪些用户;同样,如果我知道用户id,我也可以知道它所在的组,即在主外键模式下,它是双向的。

    对象模型

    

    但在对象模型的上图中,知道用户对象,可以知道它的group对象;但是在知道group对象时,不能知道此group对象都包含在哪些user对象中,即它是有方向的。 

映射类型

    Hibernate中的映射类型很多,有一对多映射、多对多映射、一对一映射,这三种又可以细分成单向、双向等,除此之外还有组件映射、继承映射、集合映射、复合主键映射等,总的来说不下十种。如果一一罗列,把每种映射都说一遍,我觉得意义不大,所以又按照它们的相似点,概括的分了下类。

    通过学习Hibernate,总结得出映射分类的元素抽象为:映射类别、参与对象、关联方向。体现到具体实现上分为:配置文件标签、参与的类、类中的属性。

    按照这个分类原则可以将映射分为如下几类:

  • 复用型映射:继承映射和组件映射。
  • 其它两种映射:复合主键映射和集合映射。
  • 数量和方向型映射:单向一对一、双向一对多……

总结

    映射的目的就是为了建立对象与对象之间的关联,这种关联一方面是为了保证数据的关联性,另一方面也是为了

Hibernate的初衷:用面向对象的思想操作数据。

    这篇博客是对映射的概括,下面的博客会按照上面我对映射的分类,分三篇博客说一下映射。


OFDM通信系统Python实现源码 本资源包提供了一套完整的正交频分复用通信系统仿真实现,采用Python编程语言开发。该实现涵盖了OFDM系统的主要构成模块,包括: 核心功能模块: - 基带信号生成与QAM调制解调单元 - 串并转换与循环前缀添加机制 - 快速傅里叶变换及其逆变换处理单元 - 多径信道建模与均衡算法实现 - 符号定时与载波同步误差补偿 技术特性: 系统采用离散傅里叶变换实现频域并行传输,通过插入循环前缀有效对抗多径时延扩展。信道编码部分采用卷积码与交织器相结合的设计方案,有效提升系统抗突发错误能力。同步模块包含精确定时同步和频偏估计补偿算法,确保系统在存在载波频率偏移和采样时钟偏差时仍能保持稳定工作。 实现细节: 代码结构采用模块化设计,各功能单元接口清晰明确。信道模型支持AWGN和多径瑞利衰落两种典型无线传输环境。性能评估模块可输出误码率曲线和星座图等关键指标,便于系统性能分析验证。 应用价值: 该实现可作为通信系统教学演示工具,也可为无线通信算法研究人员提供基础开发框架。所有源代码均采用标准Python语法编写,兼容主流科学计算库,具有较好的可移植性和扩展性。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值