Hibernate对象关系映射详解之一对多关系映射

本文详细解析Hibernate框架中的一对多关系映射,包括单向和双向关系映射的概念,并通过学生与班级关系举例,展示不同情况下的代码实现和数据加载效果,强调了维护关系的一端在数据加载时的影响。
摘要由CSDN通过智能技术生成

Hibernate对象关系映射详解之“一对多关系映射


之前学习Hibernate框架的时候,对这七大关系映射一直是云里雾里的,虽然可以仿照写出代码,但是不能独立编写出来。鉴于工作中这个知识点使用的几率还是非常大的,所以花了一点时间静下心来学习了一下,在这里写下一点学习笔记和大家交流。欢迎大家指点交流!(下面的笔记以及所有的示例都是使用注解)

我理解的关联映射就是将关联关系映射到数据库里,在对象模型中就是对一个或多个对象的引用。

七大关联映射有:单向一对一,单向一对多,单向多对一,单向多对多,双向一对一,双向一对多,双向多对多。

在学习关联映射之前,先理解何为“单向”?何为“双向”?

1、在使用注解实现关系映射时,只在其中一端进行配置则表示是单向关系映射,在两端同时进行配置则表示双向关系映射

2、单向和双向的实质区别就是:哪一方负责维护该层关系。例如在单向关系中,配置的一端负责关系的维护,另外一端不负责;双向则是双方都要维护该层关系。加载负责维护关系的一端,系统会自动加载另一端。

 

举一个生活中的例子理解双向和单向:

情景假设:A 和 B 是两个人

情景一)单向关系:

    如果仅仅只是A喜欢B,则这层“喜欢”的关系就只是由A负责维护(或者说只能由A来维护),B不会进行维护。因为A对象中“喜欢”的属性中有B,所以在加载A这个人的数据时,同时会加载出B的相关数据;但是加载B的数据时,不会加载出A的相关数据,因为B的“喜欢”属性中没有A,甚至是没有“喜欢”这个属性。

情景二双向关系:

    如果A 喜欢 B,同时B也喜欢A,则这层“喜欢”的关系就是由两个人同时维护(或者说可以由两个人维护)。同理于上,因为双方的“喜欢”属性中都有对方,所以在加载任意一个人的数据时,会加载出另外一个人的数据。

 

说明:主要还是看例子中对象所持有的属性对其的影响,不要把一对多和多对一的关系联系到“喜欢”上,重点在属性!!!哈哈


分割线==========================分割线==========================分割线


在这几种关联映射中,我觉得一对多这类关系映射最为复杂,所以在这里我先讲一对多这类(单向一对多,单向多对一,双向一对多)。有的人可能或疑惑,为什么没有双向多对一?其实在Hibernate中,一对多和多对一关系映射其实质是一样的,就是在“多“(一)的一端加对方的引用,指向“一”(多)的一端。不同的是,一对多是在“一”端加“多”端的集合,而多对一是在“多”端

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值