hibernate之一对一关联映射

Hibernate的一对一关联映射分为:

  • 主键映射:

一对一的主键关联,就是两张表通过主键形成一对一关系,并且两张表共享一个主键;

实例:

        一个人只能拥有一张身份证,同时一张身份证也只能属于它的一个主人;人和身份证就拥有同一个主键;

TPerson:

public class TPerson implements java.io.Serializable {
	private static final long serialVersionUID = 1L;

	private Integer id;
	private String name;
	private TCard tcard;
        get()/set()
}

 TPerson.hbm.xml:

<hibernate-mapping package="com.keith.one2one.pk">
	<class name="TPerson" table="TPerson">			
		<id name="id">
			<generator class="native">
			</generator>
		</id>
		
		<property name="name" />
		<!-- 
			通过one-to-one节点,将TPerson与TCard类相关联 ;
			cascade="all" 级联关系,当主控方发生操作或改变的时候,关联对象也会执行同一动作;
			outer-join="true" 外连接;
		-->
		<one-to-one name="tcard" class="com.keith.one2one.pk.TCard" cascade="all" outer-join="true"/>
	</class>	
</hibernate-mapping>
 

 

TCard:

public class TCard implements java.io.Serializable {
	private static final long serialVersionUID = 1L;

	private Integer cardId;
	private String num;
	private TPerson tperson;
        get()/set()
}

 TCard.hbm.xml:

<hibernate-mapping package="com.keith.one2one.pk">
	<class name="TCard" table="TCard">			
		<id name="cardId">
		<!-- 
			由于采用了主键关联方式,那么通过主键关联的两个表,其关联记录的主键值必须保持同步,
			意味着,我们只需为一张表设定主键生成器,而另一张表与之共享即可;
		 -->
			<generator class="foreign">
				<param name="property">tperson</param>
			</generator>
		</id>
		
		<property name="num" />
		<!-- 
			constrained:约束,告知Hibernate当前表主键上存在一个约束;
		 -->
		<one-to-one name="tperson" class="com.keith.one2one.pk.TPerson" constrained="true"/>
	</class>	
</hibernate-mapping>

测试代码:添加数据:

		TPerson person = new TPerson();
		person.setName("keith");
		
		TCard card = new TCard();
		card.setNum("10101010101");
		
		person.setTcard(card);
		card.setTperson(person);
		
		session.save(person);
		session.save(card);

 查询数据:

		TPerson person = (TPerson) session.load(TPerson.class, new Integer(1));
		System.out.println("person's name:"+person.getName());
		System.out.println("person's cardNum:"+person.getTcard().getNum());

 删除数据:

		TPerson person = (TPerson) session.load(TPerson.class, new Integer(1));
		System.out.println("person's name:"+person.getName());
		System.out.println("person's cardNum:"+person.getTcard().getNum());
 
  • 唯一外键映射;

通过外键与其进行关联;

实例:

用户和组的关系;一个用户属于一个组,一个组里有用户;

TUser:

public class TUser implements java.io.Serializable {
	private static final long serialVersionUID = 1L;

	private Integer userid;
	private String name;
	private TGroup group;
        get()/set()
}

TGroup:

public class TGroup implements java.io.Serializable {
	private static final long serialVersionUID = 1L;

	private Integer groupId;
	private String name;
        get()/set()
}

 TUser.hbm.xml:

<hibernate-mapping package="com.keith.one2one.fk.uni">
	<class name="TUser" table="TUser">			
		<id name="userid">
			<generator class="native"/>
		</id>
	
		<property name="name" />
		<!-- 
		唯一外键关联的一对一关系,是特殊的多对一关系;
		所以用many-to-one标签;并且加上unique并设置其值为true;
		-->
		<many-to-one name="group" class="TGroup" column="group_id" unique="true"/>
	</class>	
</hibernate-mapping>

 TGroup.hbm.xml:

<hibernate-mapping package="com.keith.one2one.fk.uni">
	<class name="TGroup" table="TGroup">			
		<id name="groupId">
			<generator class="native"/>
		</id>
	
		<property name="name" />	
	</class>	
</hibernate-mapping>

 以上只是单向关系,如果要设置成双向关系,则在TGroup中加入TUser对象,且加上get()/set(),在TGroup.hbm.xml中加上:

<one-to-one name="user" class="TUser" property-ref="group"/>

 标签;

TGroup:

public class TGroup implements java.io.Serializable {
	private static final long serialVersionUID = 1L;

	private Integer groupId;
	private String name;
	private TUser user;
        get()/set()
}

 TGroup.hbm.xml:

<hibernate-mapping package="com.keith.one2one.fk.doubleSide">
	<class name="TGroup" table="TGroup">			
		<id name="groupId">
			<generator class="native"/>
		</id>
	
		<property name="name" />
		<one-to-one name="user" class="TUser" property-ref="group"/>	
	</class>	
</hibernate-mapping>

 附件上有测试代码和实例代码;

 

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

相关推荐

Redhawk-SC输入件配置中的5个常见错误及解决方法

本文针对Redhawk-SC功耗与可靠性签核工具,深入剖析了输入件配置中工艺文件错配、DEF文件路径、时序文件格式、电源网络模型及宏模型处理这5个最常见且棘手的错误。文章提供了资深工程师验证过的实战解决方案与检查清单,旨在帮助用户规避风险,提升配置效率与分析准确性,确保芯片签核流程的顺利进行。

earth的博客 233

Hibernate之一对一关联映射

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

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

双目视觉入门实战:用Matlab标定相机,再到Python OpenCV完成测距的完整链路

本文详细介绍了双目视觉技术的完整实现流程,从Matlab相机标定到Python OpenCV测距的全链路实践。重点解析了Matlab与OpenCV的参数转换技巧,以及立体校正、视差计算等关键步骤的代码实现,帮助开发者快速掌握双目测距系统的搭建方法。

weixin_29166013的博客 445

【Hibernate框架】关联映射(一对一关联映射)

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

Davie's Happy Life 813

如何制作微信小程序的在线购物商城应用

首先,你需要规划好商城的整体框架,确定好你的目标用户群体,思考他们的需求是什么。接下来,使用微信开发者工具创建一个新的小程序项目,输入你的AppID,选择好保存路径,点击“创建”,一个新的商城雏形就诞生了。你可以把这里当作自己的家,无论是工作之余的小憩,还是寻找灵感的驿站,我都希望你能在这里找到属于你的那份快乐和满足。数据是现代商业的灵魂,通过数据分析,你可以更准确地把握用户的行为模式,从而做出更明智的决策。

master_chenchen的博客 2427

Robust MPC 4 (鲁棒&随机 MPC)

Robust MPC

weixin_44299806的博客 2736

13. Hibernate 一对一关联映射

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

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

最新CobaltStrike4.8/CobaltStrike4.9、CS4.9/CS4.8、 Windows/Linux/Mac版下载

Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器。自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用,分为客户端与服务端,服务端是一个,客户端可以有多个,非常适合团队协同作战,多个攻击者可以同时连接到一个团队服务器上,共享攻击资源与目标信息和sessions,可模拟APT做模拟对抗,进行内网渗透。 Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,

weixin_43167326的博客 7972

Hibernate——一对一关联映射

背景:最近在学习Hibernante视频,内容丰富

Reka's blog ^_^ 711

GenomeSurvyIndex设计--随笔017

摘要: GenomeSurvyIndex是一款自动化多倍体基因组调查工具,整合FastK、Smudgeplot和GenomeScope2.0三大核心组件。该工具通过k-mer频谱特征自动识别基因组倍性类型,包括二倍体(1:2:4)和同源四倍体(1:2:3:4),并采用3a1b>2a2b算法判定同源/异源多倍体。工具提供完整的conda环境配置方案,封装为Python脚本实现全流程自动化分析,包含k-mer计数、倍性判定、基因组特征计算等功能,最终输出标准化报告和可视化图表。该方案可直接部署使用,适用于

weixin_44874487的博客 475

国科大学习资料--VLSI测试与可测试设计--2020期末考试试题

国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 一、概念题 1简述可测试性测度与两个主要的测度指标的含义; 2以March C-算法为例,说明March算法的构成,以及March C-算法的故障覆盖率; 3“效果-原因”诊断法和“原因效果诊断法”的不同; 4列举四条扫描设计时出现的问 题及解决办法; 5最少写出1149.1与1500的五点不同; = = = = =

无名何许人的博客 1150

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

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

专注于数据 1418

海思3559av100平台lan9500模块调试记录

1. 前言 通过USB2.0接口扩展一路百兆虚拟网口 2. 配置lan9500驱动 make ARCH=arm64 menuconfig 开启LAN95XX驱动,编译进内核 保存内核配置 3. 编译内核 make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- uImage -j 20 cd ../../arm-trusted-firmware/arm-trusted-firmware ./mk.sh cp ...

jzwjzw19900922的博客 908

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

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

魏宇轩 633

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【Hibernate】——一对一关联映射

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

你若盛开,清风自来 374

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

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

Allin's blog 1229

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

hibernate 一对一双向关联映射

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

274

hibernate 的关联映射,一对一

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

小黄宝宝的专栏 106

Hibernate:one-to-one(一对一)关联映射详解

对one-to-one关联映射进行详细的叙述

SirouW的博客 3021

【Java】Hibernate(五)关联映射之一对一

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

王璐 580

【Hibernate系列】(七):关联映射之一对一

前言 一对一关联映射有两种映射策略,一种是唯一外键关联,一种是主键关联,因为唯一外键关联策略和多对一关联映射联系紧密,所以我们先来介绍这个。阅读本篇文章之前,请先阅读【Hibernate系列】(五):关联映射之多对一 唯一外键关联映射关系模型和映射原理     配置 因为一对一的唯一外键关联映射就是特殊的多对一,所以我们这里只贴出不同的代码,即增加unique=true属性,其他完全同多对

To Begin,Begin   794

【Hibernate】一对一关联映射

Hibernate关联映射包括: 一对一关联映射 一对多和多对一关联映射 多对多关联映射          本篇先说一对一关联映射 原理         一对一关联映射原理:让两个实体的主键一样,这样就不需要加入多余的字段 实例         人与身份证号的关系,一个人只有一个身份证号,一个身份证号对应一个人   实体         以单向关联Person--->

李红 328

Java 数据 02:Hibernate 关联映射(一对一 / 一对多 / 多对多)

摘要: 本文深入讲解Hibernate中的三种关联映射方式:一对一、一对多/多对一和多对多关系。通过Java实体类代码示例、数据库表结构设计和Hibernate注解配置,详细演示了如何在ORM框架中实现对象间的复杂关系映射。文章包含CRUD操作实例、性能优化建议和常见陷阱,基于Hibernate 5.6+和JPA 2.2标准编写,适用于MySQL等多种数据库。从项目搭建到实际应用,帮助开发者掌握通过注解配置对象关系映射的核心技术,提升数据库操作效率。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

hibernate一对一关联映射的四种方式

一、hibernate一对一主键关联映射(单向关联Person----->IdCard) 一对一关联映射原理:让两个实体的主键一样,这样就不需要加入多余的字段了 Person.hbm.xml 1 <class name="com.bjpowernode.hibernate.Person" table="t_person"> 2 3   <id nam...

weixin_30583563的博客 112
上一篇: 联表查询_V1
下一篇: 获取java.sql.ResultSet大小
keithJava
博客等级 码龄16年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值