<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.eijux.com/index.php?action=history&amp;feed=atom&amp;title=Hibernate%E7%AC%94%E8%AE%B0_5%EF%BC%9A%E5%AE%9E%E4%BD%93%E5%85%B3%E8%81%94%E5%85%B3%E7%B3%BB%EF%BC%9A%E4%B8%80%E5%AF%B9%E4%B8%80</id>
	<title>Hibernate笔记 5：实体关联关系：一对一 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.eijux.com/index.php?action=history&amp;feed=atom&amp;title=Hibernate%E7%AC%94%E8%AE%B0_5%EF%BC%9A%E5%AE%9E%E4%BD%93%E5%85%B3%E8%81%94%E5%85%B3%E7%B3%BB%EF%BC%9A%E4%B8%80%E5%AF%B9%E4%B8%80"/>
	<link rel="alternate" type="text/html" href="http://wiki.eijux.com/index.php?title=Hibernate%E7%AC%94%E8%AE%B0_5%EF%BC%9A%E5%AE%9E%E4%BD%93%E5%85%B3%E8%81%94%E5%85%B3%E7%B3%BB%EF%BC%9A%E4%B8%80%E5%AF%B9%E4%B8%80&amp;action=history"/>
	<updated>2026-04-25T14:18:23Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>http://wiki.eijux.com/index.php?title=Hibernate%E7%AC%94%E8%AE%B0_5%EF%BC%9A%E5%AE%9E%E4%BD%93%E5%85%B3%E8%81%94%E5%85%B3%E7%B3%BB%EF%BC%9A%E4%B8%80%E5%AF%B9%E4%B8%80&amp;diff=6035&amp;oldid=prev</id>
		<title>Eijux：​/* 关系维护：主键关联 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.eijux.com/index.php?title=Hibernate%E7%AC%94%E8%AE%B0_5%EF%BC%9A%E5%AE%9E%E4%BD%93%E5%85%B3%E8%81%94%E5%85%B3%E7%B3%BB%EF%BC%9A%E4%B8%80%E5%AF%B9%E4%B8%80&amp;diff=6035&amp;oldid=prev"/>
		<updated>2022-06-27T11:35:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;关系维护：主键关联&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2022年6月27日 (一) 19:35的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l60&quot;&gt;第60行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第60行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# 一个人只能有一个身份识别卡；&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# 一个人只能有一个身份识别卡；&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# 一个身份识别卡也只能被指定给一个人；&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# 一个身份识别卡也只能被指定给一个人；&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;以上一节的图为参考：IDCard 对应“实体 A”，Person 对应“实体 B”。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 单项关联 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 单项关联 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Eijux</name></author>
	</entry>
	<entry>
		<id>http://wiki.eijux.com/index.php?title=Hibernate%E7%AC%94%E8%AE%B0_5%EF%BC%9A%E5%AE%9E%E4%BD%93%E5%85%B3%E8%81%94%E5%85%B3%E7%B3%BB%EF%BC%9A%E4%B8%80%E5%AF%B9%E4%B8%80&amp;diff=6034&amp;oldid=prev</id>
		<title>Eijux：​/* 双项关联 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.eijux.com/index.php?title=Hibernate%E7%AC%94%E8%AE%B0_5%EF%BC%9A%E5%AE%9E%E4%BD%93%E5%85%B3%E8%81%94%E5%85%B3%E7%B3%BB%EF%BC%9A%E4%B8%80%E5%AF%B9%E4%B8%80&amp;diff=6034&amp;oldid=prev"/>
		<updated>2022-06-27T11:33:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;双项关联&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2022年6月27日 (一) 19:33的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l240&quot;&gt;第240行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第240行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&amp;lt;property name=&amp;quot;person_phone&amp;quot; column=&amp;quot;phone&amp;quot;/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&amp;lt;property name=&amp;quot;person_phone&amp;quot; column=&amp;quot;phone&amp;quot;/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&amp;lt;!-- unique：指定此端（many）为一。如此将 many-to-one 标签用作 one-to-one --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&amp;lt;!-- unique：指定此端（many）为一。如此将 many-to-one 标签用作 one-to-one  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&amp;lt;many-to-one name=&amp;quot;card&amp;quot; column=&amp;quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;card&lt;/del&gt;&amp;quot; unique=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/many-to-one&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			column：person 表的外键字段&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        &lt;/ins&gt;--&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&amp;lt;many-to-one name=&amp;quot;card&amp;quot; column=&amp;quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cardID&lt;/ins&gt;&amp;quot; unique=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/many-to-one&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;/class&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;/class&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/hibernate-mapping&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/hibernate-mapping&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Eijux</name></author>
	</entry>
	<entry>
		<id>http://wiki.eijux.com/index.php?title=Hibernate%E7%AC%94%E8%AE%B0_5%EF%BC%9A%E5%AE%9E%E4%BD%93%E5%85%B3%E8%81%94%E5%85%B3%E7%B3%BB%EF%BC%9A%E4%B8%80%E5%AF%B9%E4%B8%80&amp;diff=6032&amp;oldid=prev</id>
		<title>Eijux：​创建页面，内容为“category:Hibernate  == 关于 ==  “一对一”的关系，可分为“主键关联”、“外键关联”。    ——【对应的数据库表结构不同】  键类型： # '''主键关联'''：两个实体使用相同的主键。 #: 600px #* '''需要维护外键'''：一个实体的主键同时也是外键，参照于另一个实体的主键。 #** 所以，添加记录时，必须…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.eijux.com/index.php?title=Hibernate%E7%AC%94%E8%AE%B0_5%EF%BC%9A%E5%AE%9E%E4%BD%93%E5%85%B3%E8%81%94%E5%85%B3%E7%B3%BB%EF%BC%9A%E4%B8%80%E5%AF%B9%E4%B8%80&amp;diff=6032&amp;oldid=prev"/>
		<updated>2022-06-27T06:29:02Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“&lt;a href=&quot;/%E5%88%86%E7%B1%BB:Hibernate&quot; title=&quot;分类:Hibernate&quot;&gt;category:Hibernate&lt;/a&gt;  == 关于 ==  “一对一”的关系，可分为“主键关联”、“外键关联”。    ——【对应的数据库表结构不同】  键类型： # &amp;#039;&amp;#039;&amp;#039;主键关联&amp;#039;&amp;#039;&amp;#039;：两个实体使用相同的主键。 #: &lt;a href=&quot;/%E6%96%87%E4%BB%B6:Hibernate%EF%BC%9A%E5%AE%9E%E4%BD%93%E5%85%B3%E7%B3%BB%EF%BC%9A%E4%B8%80%E5%AF%B9%E4%B8%80%EF%BC%88%E4%B8%BB%E9%94%AE%E5%85%B3%E8%81%94%EF%BC%89.png&quot; title=&quot;文件:Hibernate：实体关系：一对一（主键关联）.png&quot;&gt;600px&lt;/a&gt; #* &amp;#039;&amp;#039;&amp;#039;需要维护外键&amp;#039;&amp;#039;&amp;#039;：一个实体的主键同时也是外键，参照于另一个实体的主键。 #** 所以，添加记录时，必须…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[category:Hibernate]]&lt;br /&gt;
&lt;br /&gt;
== 关于 ==&lt;br /&gt;
 “一对一”的关系，可分为“主键关联”、“外键关联”。    ——【对应的数据库表结构不同】&lt;br /&gt;
&lt;br /&gt;
键类型：&lt;br /&gt;
# '''主键关联'''：两个实体使用相同的主键。&lt;br /&gt;
#: [[File:Hibernate：实体关系：一对一（主键关联）.png|600px]]&lt;br /&gt;
#* '''需要维护外键'''：一个实体的主键同时也是外键，参照于另一个实体的主键。&lt;br /&gt;
#** 所以，添加记录时，必须：先添加“实体A”，在添加“实体B”的记录。&lt;br /&gt;
# '''外键关联'''：一个实体的主键用作另一个实体的外键。&lt;br /&gt;
#: [[File:Hibernate：实体关系：一对一（外键关联）.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 “一对一”的关系：同样还可分为“单项关联”、“双向关联”。&lt;br /&gt;
&lt;br /&gt;
维护方式：&lt;br /&gt;
# '''单项关联'''：&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
class A{&lt;br /&gt;
	...&lt;br /&gt;
	B b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class B{&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: 或&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
class A{&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class B{&lt;br /&gt;
	...&lt;br /&gt;
	A a;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# '''双向关联'''：（常用）&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
class A{&lt;br /&gt;
	...&lt;br /&gt;
	B b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class B{&lt;br /&gt;
	...&lt;br /&gt;
	A a;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 关系维护：主键关联 ==&lt;br /&gt;
 缺点：&lt;br /&gt;
     由于两个实体的主键之间有外键参照关系，所以，增加记录时，必须先添加“非外键方”，然后才能添加“外键方”。&lt;br /&gt;
 &lt;br /&gt;
 如下：Person 表的主键作为外键，必须先添加 IDCard 记录，再添加 Person 记录。&lt;br /&gt;
&lt;br /&gt;
以“人”（Person）与“身份识别卡”（IDCard）为例：&lt;br /&gt;
# 一个人只能有一个身份识别卡；&lt;br /&gt;
# 一个身份识别卡也只能被指定给一个人；&lt;br /&gt;
&lt;br /&gt;
=== 单项关联 ===&lt;br /&gt;
示例：&lt;br /&gt;
: 在 Person 中维护 IDCard 对象；&lt;br /&gt;
: &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;7-8&amp;quot;&amp;gt;&lt;br /&gt;
public class Person{ &lt;br /&gt;
	private int person_id;&lt;br /&gt;
	private String person_name;&lt;br /&gt;
	private String person_address;&lt;br /&gt;
	private String person_phone;&lt;br /&gt;
&lt;br /&gt;
	// 维护识别卡对象&lt;br /&gt;
	private IDCard card;&lt;br /&gt;
&lt;br /&gt;
	// getter、setter&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; highlight=&amp;quot;4-7,14-17&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hibernate-mapping&amp;gt;&lt;br /&gt;
	&amp;lt;class name=&amp;quot;com.domain.Person&amp;quot; table=&amp;quot;person&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;id name=&amp;quot;person_id&amp;quot; column=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- 主键生成策略“foreign”：申明该主键就是外键。并且指向 card 属性 --&amp;gt;&lt;br /&gt;
			&amp;lt;generator class=&amp;quot;foreign&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;param name=&amp;quot;property&amp;quot;&amp;gt;card&amp;lt;/param&amp;gt;&lt;br /&gt;
			&amp;lt;/generator&amp;gt;        &lt;br /&gt;
		&amp;lt;/id&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_name&amp;quot; column=&amp;quot;name&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_address&amp;quot; column=&amp;quot;address&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_phone&amp;quot; column=&amp;quot;phone&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- column：由于已申明主键即外键，所以省略。&lt;br /&gt;
			constrained：1、表明主键作为外键使用；2、级联关系的作用&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;one-to-one name=&amp;quot;card&amp;quot; constrained=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/one-to-one&amp;gt;&lt;br /&gt;
	&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 双项关联 ===&lt;br /&gt;
示例：&lt;br /&gt;
# 在 Person 中维护 IDCard 对象；&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;7-8&amp;quot;&amp;gt;&lt;br /&gt;
public class Person{ &lt;br /&gt;
	private int person_id;&lt;br /&gt;
	private String person_name;&lt;br /&gt;
	private String person_address;&lt;br /&gt;
	private String person_phone;&lt;br /&gt;
&lt;br /&gt;
	// 维护识别卡对象&lt;br /&gt;
	private IDCard card;&lt;br /&gt;
&lt;br /&gt;
	// getter、setter&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; highlight=&amp;quot;4-7,14-17&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hibernate-mapping&amp;gt;&lt;br /&gt;
	&amp;lt;class name=&amp;quot;com.domain.Person&amp;quot; table=&amp;quot;person&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;id name=&amp;quot;person_id&amp;quot; column=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- 主键生成策略“foreign”：申明该主键就是外键。并且指向 card 属性 --&amp;gt;&lt;br /&gt;
			&amp;lt;generator class=&amp;quot;foreign&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;param name=&amp;quot;property&amp;quot;&amp;gt;card&amp;lt;/param&amp;gt;&lt;br /&gt;
			&amp;lt;/generator&amp;gt;&lt;br /&gt;
		&amp;lt;/id&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_name&amp;quot; column=&amp;quot;name&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_address&amp;quot; column=&amp;quot;address&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_phone&amp;quot; column=&amp;quot;phone&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- column：由于已申明主键即外键，所以省略。&lt;br /&gt;
			constrained：1、表明主键作为外键使用；2、级联关系的作用&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;one-to-one name=&amp;quot;card&amp;quot; constrained=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/one-to-one&amp;gt;&lt;br /&gt;
	&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# 在 IDCard 中维护 Person 对象；&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;6-7&amp;quot;&amp;gt;&lt;br /&gt;
public class IDCard{ &lt;br /&gt;
	private int card_id;&lt;br /&gt;
	private String card_No;&lt;br /&gt;
	private String card_state;&lt;br /&gt;
&lt;br /&gt;
	// 维护人对象&lt;br /&gt;
	private Person person; &lt;br /&gt;
&lt;br /&gt;
	// getter、setter&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; highlight=&amp;quot;11-12&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hibernate-mapping&amp;gt;&lt;br /&gt;
	&amp;lt;class name=&amp;quot;com.domain.IdCard&amp;quot; table=&amp;quot;idcard&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;id name=&amp;quot;card_id&amp;quot; column=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- 主键生成策略 --&amp;gt;&lt;br /&gt;
			&amp;lt;generator class=&amp;quot;native&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/id&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;property name=&amp;quot;card_No&amp;quot; column=&amp;quot;No&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;card_state&amp;quot; column=&amp;quot;state&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- one-to-one：默认使用“主键关联”，所以没有 column --&amp;gt;&lt;br /&gt;
		&amp;lt;one-to-one name=&amp;quot;person&amp;quot;&amp;gt;&amp;lt;/one-to-one&amp;gt;&lt;br /&gt;
	&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 关系维护：外键关联 ==&lt;br /&gt;
 外键关联，就和其余关系（“一对多”、“多对多”）类似了。&lt;br /&gt;
 &lt;br /&gt;
 可以将其看作是“一对多”的特例（“多端”为一）。&lt;br /&gt;
&lt;br /&gt;
同样以上节关系为例。&lt;br /&gt;
&lt;br /&gt;
=== 单项关联 ===&lt;br /&gt;
示例：&lt;br /&gt;
: 在 Person 中维护 IDCard 对象；&lt;br /&gt;
: &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;7-8&amp;quot;&amp;gt;&lt;br /&gt;
public class Person{ &lt;br /&gt;
	private int person_id;&lt;br /&gt;
	private String person_name;&lt;br /&gt;
	private String person_address;&lt;br /&gt;
	private String person_phone;&lt;br /&gt;
&lt;br /&gt;
	// 维护识别卡对象&lt;br /&gt;
	private IDCard card;&lt;br /&gt;
&lt;br /&gt;
	// getter、setter&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; highlight=&amp;quot;12-13&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hibernate-mapping&amp;gt;&lt;br /&gt;
	&amp;lt;class name=&amp;quot;com.domain.Person&amp;quot; table=&amp;quot;person&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;id name=&amp;quot;person_id&amp;quot; column=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- 主键生成策略 --&amp;gt;&lt;br /&gt;
			&amp;lt;generator class=&amp;quot;native&amp;quot;/&amp;gt;   &lt;br /&gt;
		&amp;lt;/id&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_name&amp;quot; column=&amp;quot;name&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_address&amp;quot; column=&amp;quot;address&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_phone&amp;quot; column=&amp;quot;phone&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- unique：指定此端（many）为一。如此将 many-to-one 标签用作 one-to-one --&amp;gt;&lt;br /&gt;
		&amp;lt;many-to-one name=&amp;quot;card&amp;quot; column=&amp;quot;card&amp;quot; unique=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/many-to-one&amp;gt;&lt;br /&gt;
	&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 双项关联 ===&lt;br /&gt;
示例：&lt;br /&gt;
# 在 Person 中维护 IDCard 对象；&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;7-8&amp;quot;&amp;gt;&lt;br /&gt;
public class Person{ &lt;br /&gt;
	private int person_id;&lt;br /&gt;
	private String person_name;&lt;br /&gt;
	private String person_address;&lt;br /&gt;
	private String person_phone;&lt;br /&gt;
&lt;br /&gt;
	// 维护识别卡对象&lt;br /&gt;
	private IDCard card;&lt;br /&gt;
&lt;br /&gt;
	// getter、setter&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; highlight=&amp;quot;12-13&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hibernate-mapping&amp;gt;&lt;br /&gt;
	&amp;lt;class name=&amp;quot;com.domain.Person&amp;quot; table=&amp;quot;person&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;id name=&amp;quot;person_id&amp;quot; column=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- 主键生成策略 --&amp;gt;&lt;br /&gt;
			&amp;lt;generator class=&amp;quot;native&amp;quot;/&amp;gt;   &lt;br /&gt;
		&amp;lt;/id&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_name&amp;quot; column=&amp;quot;name&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_address&amp;quot; column=&amp;quot;address&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;person_phone&amp;quot; column=&amp;quot;phone&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- unique：指定此端（many）为一。如此将 many-to-one 标签用作 one-to-one --&amp;gt;&lt;br /&gt;
		&amp;lt;many-to-one name=&amp;quot;card&amp;quot; column=&amp;quot;card&amp;quot; unique=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/many-to-one&amp;gt;&lt;br /&gt;
	&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# 在 IDCard 中维护 Person 对象；&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;6-7&amp;quot;&amp;gt;&lt;br /&gt;
public class IDCard{ &lt;br /&gt;
	private int card_id;&lt;br /&gt;
	private String card_No;&lt;br /&gt;
	private String card_state;&lt;br /&gt;
&lt;br /&gt;
	// 维护人对象&lt;br /&gt;
	private Person person; &lt;br /&gt;
&lt;br /&gt;
	// getter、setter&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; highlight=&amp;quot;11-12&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hibernate-mapping&amp;gt;&lt;br /&gt;
	&amp;lt;class name=&amp;quot;com.domain.IdCard&amp;quot; table=&amp;quot;idcard&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;id name=&amp;quot;card_id&amp;quot; column=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- 主键生成策略 --&amp;gt;&lt;br /&gt;
			&amp;lt;generator class=&amp;quot;native&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/id&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;property name=&amp;quot;card_No&amp;quot; column=&amp;quot;No&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;card_state&amp;quot; column=&amp;quot;state&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- property-ref：指定关联 Person 类的 card 属性 --&amp;gt;&lt;br /&gt;
		&amp;lt;one-to-one name=&amp;quot;person&amp;quot; property-ref=&amp;quot;card&amp;quot; class=&amp;quot;domain1.Person&amp;quot;&amp;gt;&amp;lt;/one-to-one&amp;gt;&lt;br /&gt;
	&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Eijux</name></author>
	</entry>
</feed>