Hibernate——一对一关联映射

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情


背景:最近在学习Hibernante视频,内容丰富,讲解的也挺详细的,正好学习到一对一关联映射,里面的细节非常值得记录一下!


一、相关概念


两个对象之间是是一对一的关系,如Person-IdCard


有两种策略可以实现一对一的关联映射:

1、主键关联:即让两个对象具有相同的关键值,以表明它们之间的一对一对应的关系;数据库不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联

2、唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制后,也可以用来表示一对一关联关系。


二、主键关联


1、单向关联(Person------>IdCard)


一对一关联映射原理:让两个实体的主键一样,这样就不需要加入多余的字段了。

<class name="com.bjpowernode.hibernate.Person"table="t_person">
<idname="id">
<!-- 采用foreign生成策略,forgeign会取得关联对象的标识-->
<generatorclass="foreign">
<!-- property只关联对象 -->
<paramname="property">idCard</param>
</generator>
</id>
<propertyname="name"/>
<!--one-to-one指示hibernate如何加载其关联对象,默认根据主键加载也就是拿到关系字段值,
根据对端的主键来加载关联对象constrained="true表示,当前主键(person的主键)还是一个外键
参照了对端的主键(IdCard的主键),也就是会生成外键约束语句-->
<one-to-onename="idCard" constrained="true"/>
</class>

2、双向关联(Person<----->IdCard)


需要在IdCard加入<one-to-one>标签,指示hibernate将关联对象Person根据主键加载上来;
<one-to-one>不影响存储,只影响加载。


三、唯一外键关联


1、单向关联(Person------>IdCard)


一对一唯一外键关联映射其实是多对一的特例;
采用<many-to-one>标签来映射,指定多的一端unique为true,这样就限制了多的一端的多重性为一,就是这样来映射的。


2、双向关联(Person<----->IdCard)


一对一唯一外键关联双向采用<one-to-one>标签映射,必须指定<one-to-one>标签中的property-ref属性为关系字段的名称。


四、学习心得


1、关系映射是实体类和表之间的关联,一般采用<class>标签映射。

2、如果实体类的名称或实体类中属性的名称和数据库关键字重复,将会出现问题,可以考虑采用table属性和column属性对其进行重新命名。

3、可以了解一下hibernate.cfg.xml文件中的hbm2ddl属性。








Hibernate:one-to-one(一对一关联映射详解 对one-to-one关联映射进行详细的叙述 阅读详情

相关推荐

Hibernate一对一唯一外键关联映射实战

本文还有配套的精品资源,点击获取 简介:在Hibernate持久化框架中,一对一关系是常见的对象关联类型,表示两个实体间有唯一的对应关系。本文通过双向关联实例,深入讲解如何实现一对一唯一外键关联映射。文章首先介绍了Hibernate中的一对一关联类型和唯一外键关联映射的实现方法,接着通过实体类A和B的注解配置示例,详细说明了双向一对一关联的创建和级联操作的使用。最后,讨论了...

weixin_36019375的博客 999

映射-- 一对一(两种)(人与身份)

一对一 ,例如"人" 对 "身份证"的对应关系     伦理片 http://www.dotdy.com/ 第一种情况: IdCard类的ID 既是主键又是外键   关系请看下图,  (图中的配置, 写反了 ,不要参考,  正确的配置请看下面的代码) Person类: Java代码   package dao.po;      /*

光线技术博客 4652

深入理解Hibernate中的一对一双向关联映射

本文还有配套的精品资源,点击获取 简介:在Java持久化框架Hibernate中,一对一双向关联映射是建立数据库中两个实体间一对一关系的重要策略。这种映射方式增强了数据操作的灵活性,便于处理复杂的数据关联。本文将详细解读一对一双向关联映射的概念,探讨主键关联和唯一外键关联的配置方法,以及如何通过测试用例确保映射策略的正确性。掌握这些技术点将帮助开发者更高效地管理数据库中的复...

weixin_34456923的博客 1024

9 映射-- 一对一(两种)(人与身份)

        一对一 ,例如"人" 对 "身份证"的对应关系   第一种情况: IdCard类的ID 既是主键又是外键   关系请看下图,  (图中的配置, 写反了 ,不要参考,  正确的配置请看下面的代码) Person类: package dao.po; /** * @author zl 人类 * */ public class P...

SiC B2B2C Shop大型B2B2C商城软件产品,使用Java语言开发,高性能高扩展性高安全性分布式。可帮助你快速的建立大型B2B2C电商系统 394

一对一映射与一对一注解

想实现两个表的主键一对一关系搞了半天一对一映射发现原来我需要的是一对一注解

sinat_34812870的博客 544

5G时代带动了一对一直播源码的高速发展

5G时代带动了一对一直播源码的高速发展 5G时代到来成就网络高宽带、低延时为超高清视频发展的技术基础带来了强有力的支撑,5G+视频将迎来重大的发展机遇,我们将进入信息视频化,视频超高清化的新时代。 流媒体播放器:一对一直播源码每个产品界面都是标准化,统一化设计,不同的手机会运用不同的产品,这些设计在直播过程中,可以让每个不同品牌的手机看到的界面一致,并且不会卡顿,延迟,且分辨率达到一致。 人脸识别:5G时代到来最先进的人脸识别AI技术,并产生良好的体验,一对一直播源码给用户提供超现实的聊天交友环...

bugu2861535546的博客 997

hibernate在配置文件中配置对象关系映射文件即hbm文件路径的写法

hbm文件如果在src下,则 如果在实体类包中,则 也就是说在copy qualified name后去掉/project_name/src/之后剩余的部分

koushr的博客 813

Hibernate一对一关联映射

Hibernate一对一关联映射共分为两种,一种是一对一主键关联映射,另一种是一对一唯一外键关联映射。下面简单介绍一下这两种关联映射一对一主键关联映射 一对一主键关联映射的两个实体有相同的ID。这种映射又分为单向一对一关联主键映射和双向一对一主键关联映射。 单向一对一主键关联映射 实例类图 映射文件IdCard.hbm.xml

梦想起飞的地方,必须用心去经营 2195

Hibernate框架】关联映射一对一关联映射

关于一对一映射的相关知识告一段落,但是大家要知道,唯一外键关联其实就是多对一关联的一种特殊情况,所以当我们需求变了,要求有一对一变成多对一的时候,我们该怎么办呢?其实很简单,直接把外键唯一的约束干掉就可以了,是不是方便很多呢

Davie's Happy Life 810

13. Hibernate 一对一关联映射

本文和大家一起聊聊关联映射。什么是关联映射;如何实现一对一关联映射

这是一个web全栈开发的博客,取其精华去其糟粕,争取让大家一看就懂,一学就会,一用就成~ 1353

Hibernate一对一 唯一外键关联映射

Hibernate一对一外键关联映射有主键关联和唯一外键关联,后一种较常用   1. 一对一外键关联映射方法,采用的是多对一映射思想,在多的一端加入一个外键   指向一的一端,同时呢又限制了这个外键的unique属性对于true,这样就构成一对   一映射了.      2.标签中有一个property-ref的属性,它表示的是配置这个标签的对象   的主键与另一个一的一

专注于数据 1415

Hibernate(10)_一对一关联映射

本系列博客汇总在这里:Hibernate 汇总 @TOC 源码工程文件为:hibernate4.3_04 多对一的关联映射 使用员工和球队的例子 类图:

魏宇轩 629

Hibernate】——一对一关联映射

一对一关联映射是两个对象之间一对一的关系,如我们一个身份证号对应一个人。一对一关联映射有两种策略可以实现,即一对一主键关联映射:让两个对象具有相同的主键值,以表明它们之间一对一的对应关系,数据库表不会有额外的字段来维护她们之间的关系,仅通过表的主键来关联。还有一种是外键关联:外键关联本来是用于多对一的配置,但是如果加上唯一的限制之后,就可以用来表示一对一的关联关系。 一对一主键关联映射

你若盛开,清风自来 371

Eclipse快速上手Hibernate--6. 关联映射(一对一)

   Hibernate中的关联(Association)映射主要有三种:一对一关联,一对多(或多对一)关联,多对多关联。每种关联都可以分为单向和双向两种。    这篇文章主要说的是在Hibernate中的一对一关联,可以参考Hibernate官方文档的第5章。至于环境设置,可以参考这个系列的前面几篇文章。       一对一关联有两种映射方式:一种是使用主键关联,限制两个数据表的

Allin's blog 1227

hibernate 一对一双向关联映射

上篇博文【SSH进阶之路】Hibernate映射——一对一单向关联映射(五),我们介绍了一对一的单向关联映射,单向是指只能从人(Person)这端加载身份证端(IdCard),但是反过来,不能从身份证端加载人得信息。如图所示:              关键原因在于对象模型具有方向性: 单向:一端只能加载另一端,不能反过来。 双向:两端都可以加载另一端。

269

hibernate关联映射一对一

映射关系,在hibernate的意思就是,你可以通过这个entity,拿到另一个entity的内容。 一对一,就是说一个人对应一张身份证。 如果是单向,那么从person可以拿到身份证,但是从身份证实体不能拿到person对象。 如果是双向,那就是互相都可以获取对方。 要注意,这种关联关系是在框架层面实现的,要和数据库的外键要区分开来,这种关联关系,你可以在DB层面通过外键来实行约束...

小黄宝宝的专栏 104

JavaHibernate(五)关联映射一对一

【One to one】        一对一关联映射包括主键关联,唯一外键关联两种,其中又分单向映射和双向映射两种。                       【主键单向】        每个人都有对应自己身份的身份证,这是唯一的,这就是现实生活中最常见的一对一的例子。想通过Person得知对应的IDcard,对象图形中,关联是有方向的,只能通过Person找到IdCard。关联图

王璐 574
上一篇: 漫漫考研路之考后总结
下一篇: 经验分享之SVN禁止删除和强制注释操作的钩子脚本pre-commit
Reka
博客等级 码龄13年 141粉丝 185原创
评论 25
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值