⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 associations.html

📁 关于hibernate的中文文档 关于hibernate的中文文档 关于hibernate的中文文档 关于hibernate的中文文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<html><head>      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">   <title>&#31532;&nbsp;7&nbsp;&#31456;&nbsp;&#20851;&#32852;&#20851;&#31995;&#26144;&#23556;</title><link rel="stylesheet" href="../shared/css/html.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="HIBERNATE - &#31526;&#21512;Java&#20064;&#24815;&#30340;&#20851;&#31995;&#25968;&#25454;&#24211;&#25345;&#20037;&#21270;"><link rel="up" href="index.html" title="HIBERNATE - &#31526;&#21512;Java&#20064;&#24815;&#30340;&#20851;&#31995;&#25968;&#25454;&#24211;&#25345;&#20037;&#21270;"><link rel="previous" href="collections.html" title="&#31532;&nbsp;6&nbsp;&#31456;&nbsp;&#38598;&#21512;&#31867;(Collections)&#26144;&#23556;"><link rel="next" href="components.html" title="&#31532;&nbsp;8&nbsp;&#31456;&nbsp;&#32452;&#20214;&#65288;Component&#65289;&#26144;&#23556;"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">&#31532;&nbsp;7&nbsp;&#31456;&nbsp;&#20851;&#32852;&#20851;&#31995;&#26144;&#23556;</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="collections.html">&#19978;&#19968;&#39029;</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="components.html">&#19979;&#19968;&#39029;</a></td></tr></table><hr></div><div class="chapter" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title"><a name="associations"></a>&#31532;&nbsp;7&nbsp;&#31456;&nbsp;&#20851;&#32852;&#20851;&#31995;&#26144;&#23556;</h2></div></div><div></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="assoc-intro"></a>7.1.&nbsp;&#20171;&#32461;</h2></div></div><div></div></div><p>            &#20851;&#32852;&#20851;&#31995;&#26144;&#23556;&#36890;&#24120;&#24773;&#20917;&#26159;&#26368;&#38590;&#37197;&#32622;&#27491;&#30830;&#30340;&#12290;&#22312;&#36825;&#20010;&#37096;&#20998;&#20013;&#65292;&#25105;&#20204;&#20174;&#21333;&#21521;&#20851;&#31995;&#26144;&#23556;&#24320;&#22987;&#65292;&#28982;&#21518;&#32771;&#34385;&#21452;&#21521;&#20851;&#31995;&#26144;&#23556;&#65292;&#30001;&#27973;&#33267;&#28145;&#35762;&#36848;&#19968;&#36941;&#20856;&#22411;&#30340;&#26696;&#20363;&#12290;&#22312;&#25152;&#26377;&#30340;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#37117;&#20351;&#29992; <tt class="literal">Person</tt>&#21644;<tt class="literal">Address</tt>&#12290;        </p><p>        	&#25105;&#20204;&#26681;&#25454;&#26144;&#23556;&#20851;&#31995;&#26159;&#21542;&#28041;&#21450;&#36830;&#25509;&#34920;&#20197;&#21450;&#22810;&#26679;&#24615;&#26469;&#21010;&#20998;&#20851;&#32852;&#31867;&#22411;&#12290;        </p><p>        	&#22312;&#20256;&#32479;&#30340;&#25968;&#25454;&#24314;&#27169;&#20013;&#65292;&#20801;&#35768;&#20026;Null&#20540;&#30340;&#22806;&#38190;&#34987;&#35748;&#20026;&#26159;&#19968;&#31181;&#19981;&#22909;&#30340;&#23454;&#36341;&#65292;&#22240;&#27492;&#25105;&#20204;&#25152;&#26377;&#30340;&#20363;&#23376;&#20013;&#37117;&#20351;&#29992;&#19981;&#20801;&#35768;&#20026;Null&#30340;&#22806;&#38190;&#12290;&#36825;&#24182;&#19981;&#26159;Hibernate&#30340;&#35201;&#27714;&#65292;&#21363;&#20351;&#20320;&#21024;&#38500;&#25481;&#19981;&#20801;&#35768;&#20026;Null&#30340;&#32422;&#26463;&#65292;Hibernate&#26144;&#23556;&#19968;&#26679;&#21487;&#20197;&#24037;&#20316;&#30340;&#24456;&#22909;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="assoc-unidirectional"></a>7.2.&nbsp;&#21333;&#21521;&#20851;&#32852;&#65288;Unidirectional associations&#65289;</h2></div></div><div></div></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="assoc-unidirectional-m21"></a>7.2.1.&nbsp;&#22810;&#23545;&#19968;(many to one)</h3></div></div><div></div></div><p>             <span class="emphasis"><em>&#21333;&#21521;many-to-one&#20851;&#32852;</em></span>&#26159;&#26368;&#24120;&#35265;&#30340;&#21333;&#21521;&#20851;&#32852;&#20851;&#31995;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id" column="personId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;many-to-one name="address"         column="addressId"        not-null="true"/&gt;&lt;/class&gt;&lt;class name="Address"&gt;    &lt;id name="id" column="addressId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;&lt;/class&gt;</pre><pre class="programlisting">create table Person ( personId bigint not null primary key, addressId bigint not null )create table Address ( addressId bigint not null primary key )        </pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="assoc-unidirectional-121"></a>7.2.2.&nbsp;&#19968;&#23545;&#19968;&#65288;one to one&#65289;</h3></div></div><div></div></div><p>             <span class="emphasis"><em>&#22522;&#20110;&#22806;&#38190;&#20851;&#32852;&#30340;&#21333;&#21521;&#19968;&#23545;&#19968;&#20851;&#32852;</em></span>&#21644;<span class="emphasis"><em>&#21333;&#21521;&#22810;&#23545;&#19968;&#20851;&#32852;</em></span>&#20960;&#20046;&#26159;&#19968;&#26679;&#30340;&#12290;&#21807;&#19968;&#30340;&#19981;&#21516;&#23601;&#26159;&#21333;&#21521;&#19968;&#23545;&#19968;&#20851;&#32852;&#20013;&#30340;&#22806;&#38190;&#23383;&#27573;&#20855;&#26377;&#21807;&#19968;&#24615;&#32422;&#26463;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id" column="personId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;many-to-one name="address"         column="addressId"         unique="true"        not-null="true"/&gt;&lt;/class&gt;&lt;class name="Address"&gt;    &lt;id name="id" column="addressId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;&lt;/class&gt;</pre><pre class="programlisting">create table Person ( personId bigint not null primary key, addressId bigint not null unique )create table Address ( addressId bigint not null primary key )        </pre><p>            <span class="emphasis"><em>&#22522;&#20110;&#20027;&#38190;&#20851;&#32852;&#30340;&#21333;&#21521;&#19968;&#23545;&#19968;&#20851;&#32852;</em></span>&#36890;&#24120;&#20351;&#29992;&#19968;&#20010;&#29305;&#23450;&#30340;id&#29983;&#25104;&#22120;&#12290;&#65288;&#35831;&#27880;&#24847;&#65292;&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#25105;&#20204;&#25481;&#25442;&#20102;&#20851;&#32852;&#30340;&#26041;&#21521;&#12290;&#65289;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id" column="personId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;&lt;/class&gt;&lt;class name="Address"&gt;    &lt;id name="id" column="personId"&gt;        &lt;generator class="foreign"&gt;            &lt;param name="property"&gt;person&lt;/param&gt;        &lt;/generator&gt;    &lt;/id&gt;    &lt;one-to-one name="person" constrained="true"/&gt;&lt;/class&gt;</pre><pre class="programlisting">create table Person ( personId bigint not null primary key )create table Address ( personId bigint not null primary key )        </pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="assoc-unidirectional-12m"></a>7.2.3.&nbsp;&#19968;&#23545;&#22810;&#65288;one to many&#65289;</h3></div></div><div></div></div><p>            <span class="emphasis"><em>&#22522;&#20110;&#22806;&#38190;&#20851;&#32852;&#30340;&#21333;&#21521;&#19968;&#23545;&#22810;&#20851;&#32852;</em></span>&#26159;&#19968;&#31181;&#24456;&#23569;&#35265;&#30340;&#24773;&#20917;&#65292;&#24182;&#19981;&#25512;&#33616;&#20351;&#29992;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id" column="personId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;set name="addresses"&gt;        &lt;key column="personId"             not-null="true"/&gt;        &lt;one-to-many class="Address"/&gt;    &lt;/set&gt;&lt;/class&gt;&lt;class name="Address"&gt;    &lt;id name="id" column="addressId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;&lt;/class&gt;</pre><pre class="programlisting">create table Person ( personId bigint not null primary key )create table Address ( addressId bigint not null primary key, personId bigint not null )        </pre><p>            &#25105;&#20204;&#35748;&#20026;&#23545;&#20110;&#36825;&#31181;&#20851;&#32852;&#20851;&#31995;&#26368;&#22909;&#20351;&#29992;&#36830;&#25509;&#34920;&#12290;        </p></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="assoc-unidirectional-join"></a>7.3.&nbsp;&#20351;&#29992;&#36830;&#25509;&#34920;&#30340;&#21333;&#21521;&#20851;&#32852;&#65288;Unidirectional associations with join tables&#65289;</h2></div></div><div></div></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="assoc-unidirectional-join-12m"></a>7.3.1.&nbsp;&#19968;&#23545;&#22810;(one to many)</h3></div></div><div></div></div><p>            <span class="emphasis"><em>&#22522;&#20110;&#36830;&#25509;&#34920;&#30340;&#21333;&#21521;&#19968;&#23545;&#22810;&#20851;&#32852;</em></span> &#24212;&#35813;&#20248;&#20808;&#34987;&#37319;&#29992;&#12290;&#35831;&#27880;&#24847;&#65292;&#36890;&#36807;&#25351;&#23450;<tt class="literal">unique="true"</tt>&#65292;&#25105;&#20204;&#21487;&#20197;&#25226;&#22810;&#26679;&#24615;&#20174;&#22810;&#23545;&#22810;&#25913;&#21464;&#20026;&#19968;&#23545;&#22810;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id" column="personId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;set name="addresses" table="PersonAddress"&gt;        &lt;key column="personId"/&gt;        &lt;many-to-many column="addressId"            unique="true"            class="Address"/&gt;    &lt;/set&gt;&lt;/class&gt;&lt;class name="Address"&gt;    &lt;id name="id" column="addressId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;&lt;/class&gt;</pre><pre class="programlisting">create table Person ( personId bigint not null primary key )create table PersonAddress ( personId not null, addressId bigint not null primary key )create table Address ( addressId bigint not null primary key )        </pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="assoc-unidirectional-join-m21"></a>7.3.2.&nbsp;&#22810;&#23545;&#19968;&#65288;many to one&#65289;</h3></div></div><div></div></div><p>            <span class="emphasis"><em>&#22522;&#20110;&#36830;&#25509;&#34920;&#30340;&#21333;&#21521;&#22810;&#23545;&#19968;&#20851;&#32852;</em></span>&#22312;&#20851;&#32852;&#20851;&#31995;&#21487;&#36873;&#30340;&#24773;&#20917;&#19979;&#24212;&#29992;&#20063;&#24456;&#26222;&#36941;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id" column="personId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;join table="PersonAddress"         optional="true"&gt;        &lt;key column="personId" unique="true"/&gt;        &lt;many-to-one name="address"            column="addressId"             not-null="true"/&gt;    &lt;/join&gt;&lt;/class&gt;&lt;class name="Address"&gt;    &lt;id name="id" column="addressId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;&lt;/class&gt;</pre><pre class="programlisting">create table Person ( personId bigint not null primary key )create table PersonAddress ( personId bigint not null primary key, addressId bigint not null )create table Address ( addressId bigint not null primary key )        </pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="assoc-unidirectional-join-121"></a>7.3.3.&nbsp;&#19968;&#23545;&#19968;&#65288;one to one&#65289;</h3></div></div><div></div></div><p>            <span class="emphasis"><em>&#22522;&#20110;&#36830;&#25509;&#34920;&#30340;&#21333;&#21521;&#19968;&#23545;&#19968;&#20851;&#32852;</em></span>&#38750;&#24120;&#23569;&#35265;&#65292;&#20294;&#20063;&#26159;&#21487;&#34892;&#30340;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id" column="personId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;join table="PersonAddress"         optional="true"&gt;        &lt;key column="personId"             unique="true"/&gt;        &lt;many-to-one name="address"            column="addressId"             not-null="true"            unique="true"/&gt;    &lt;/join&gt;&lt;/class&gt;&lt;class name="Address"&gt;    &lt;id name="id" column="addressId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;&lt;/class&gt;</pre><pre class="programlisting">create table Person ( personId bigint not null primary key )create table PersonAddress ( personId bigint not null primary key, addressId bigint not null unique )create table Address ( addressId bigint not null primary key )        </pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="assoc-unidirectional-join-m2m"></a>7.3.4.&nbsp;&#22810;&#23545;&#22810;&#65288;many to many&#65289;</h3></div></div><div></div></div><p>            &#26368;&#21518;&#65292;&#36824;&#26377; <span class="emphasis"><em>&#21333;&#21521;&#22810;&#23545;&#22810;&#20851;&#32852;</em></span>.        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id" column="personId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;set name="addresses" table="PersonAddress"&gt;        &lt;key column="personId"/&gt;        &lt;many-to-many column="addressId"            class="Address"/&gt;    &lt;/set&gt;&lt;/class&gt;&lt;class name="Address"&gt;    &lt;id name="id" column="addressId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;&lt;/class&gt;</pre><pre class="programlisting">create table Person ( personId bigint not null primary key )create table PersonAddress ( personId bigint not null, addressId bigint not null, primary key (personId, addressId) )create table Address ( addressId bigint not null primary key )        </pre></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="assoc-bidirectional"></a>7.4.&nbsp;&#21452;&#21521;&#20851;&#32852;&#65288;Bidirectional associations&#65289;</h2></div></div><div></div></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="assoc-bidirectional-m21"></a>7.4.1.&nbsp;&#19968;&#23545;&#22810;&#65288;one to many) / &#22810;&#23545;&#19968;&#65288;many to one&#65289;</h3></div></div><div></div></div><p>            <span class="emphasis"><em>&#21452;&#21521;&#22810;&#23545;&#19968;&#20851;&#32852;</em></span> &#26159;&#26368;&#24120;&#35265;&#30340;&#20851;&#32852;&#20851;&#31995;&#12290;&#65288;&#36825;&#20063;&#26159;&#26631;&#20934;&#30340;&#29238;/&#23376;&#20851;&#32852;&#20851;&#31995;&#12290;&#65289;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id" column="personId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;many-to-one name="address"         column="addressId"        not-null="true"/&gt;&lt;/class&gt;&lt;class name="Address"&gt;    &lt;id name="id" column="addressId"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;set name="people" inverse="true"&gt;        &lt;key column="addressId"/&gt;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -