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

📄 collections.html

📁 hibernate的一点学习资料!
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<html><head>      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">   <title>Chapter&nbsp;6.&nbsp;&#38598;&#21512;&#31867;(Collections)</title><link rel="stylesheet" href="../styles/html.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.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="or-mapping.html" title="Chapter&nbsp;5.&nbsp;O/R Mapping&#22522;&#30784;"><link rel="next" href="components.html" title="Chapter&nbsp;7.&nbsp;&#32452;&#20214;&#65288;Components&#65289;"></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">Chapter&nbsp;6.&nbsp;&#38598;&#21512;&#31867;(Collections)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="or-mapping.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="components.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="collections"></a>Chapter&nbsp;6.&nbsp;&#38598;&#21512;&#31867;(Collections)</h2></div></div><div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="collections-s1-1"></a>6.1.&nbsp;&#25345;&#20037;&#21270;&#38598;&#21512;&#31867;(Persistent Collections)</h2></div></div><div></div></div><p>            (&#35793;&#32773;&#27880;&#65306;&#22312;&#38405;&#35835;&#26412;&#31456;&#30340;&#26102;&#20505;&#65292;&#20197;&#21518;&#25972;&#20010;&#25163;&#20876;&#30340;&#38405;&#35835;&#36807;&#31243;&#20013;&#65292;&#25105;&#20204;&#37117;&#20250;&#38754;&#20020;&#19968;&#20010;&#21517;&#35789;&#26041;&#38754;&#30340;&#38382;&#39064;&#65292;&#37027;&#23601;&#26159;&#8220;&#38598;&#21512;&#8221;&#12290;"Collections"&#21644;"Set"&#22312;&#20013;&#25991;&#37324;&#23545;&#24212;&#37117;&#34987;&#32763;&#35793;&#20026;&#8220;&#38598;&#21512;&#8221;&#65292;&#20294;&#26159;&#20182;&#20204;&#30340;&#21547;&#20041;&#24456;&#19981;&#19968;&#26679;&#12290;Collections&#26159;&#19968;&#20010;&#36229;&#38598;&#65292;Set&#26159;&#20854;&#20013;&#30340;&#19968;&#31181;&#12290;&#22823;&#37096;&#20998;&#24773;&#20917;&#19979;&#65292;&#26412;&#35793;&#31295;&#20013;&#27867;&#25351;&#30340;&#26410;&#21152;&#33521;&#25991;&#27880;&#26126;&#30340;&#8220;&#38598;&#21512;&#8221;&#65292;&#37117;&#24212;&#24403;&#29702;&#35299;&#20026;&#8220;Collections&#8221;&#12290;&#22312;&#26377;&#20123;&#20108;&#32773;&#21516;&#26102;&#20986;&#29616;&#65292;&#21487;&#33021;&#36896;&#25104;&#28151;&#28102;&#30340;&#22320;&#26041;&#65292;&#25105;&#20204;&#29992;&#8220;&#38598;&#21512;&#31867;&#8221;&#26469;&#29305;&#25351;&#8220;Collecions&#8221;,&#8220;&#38598;&#21512;(Set)&#8221;&#26469;&#25351;"Set"&#65292;&#19968;&#33324;&#37117;&#20250;&#22312;&#21518;&#38754;&#30340;&#25324;&#21495;&#20013;&#32473;&#20986;&#33521;&#25991;&#12290;&#24076;&#26395;&#22823;&#23478;&#22312;&#38405;&#35835;&#26102;&#32852;&#31995;&#19978;&#19979;&#25991;&#29702;&#35299;&#65292;&#19981;&#35201;&#36896;&#25104;&#35823;&#35299;&#12290;            &#19982;&#27492;&#21516;&#26102;&#65292;&#8220;&#20803;&#32032;&#8221;&#19968;&#35789;&#23545;&#24212;&#30340;&#33521;&#25991;&#8220;element&#8221;&#65292;&#20063;&#26377;&#20004;&#20010;&#19981;&#21516;&#30340;&#21547;&#20041;&#12290;&#20854;&#19968;&#20026;&#38598;&#21512;&#30340;&#20803;&#32032;&#65292;&#26159;&#20869;&#23384;&#20013;&#30340;&#19968;&#20010;&#21464;&#37327;&#65307;&#21478;&#19968;&#21547;&#20041;&#21017;&#26159;XML&#25991;&#26723;&#20013;&#30340;&#19968;&#20010;&#26631;&#31614;&#25152;&#20195;&#34920;&#30340;&#20803;&#32032;&#12290;&#20063;&#35831;&#27880;&#24847;&#21306;&#21035;&#12290;            &#26412;&#31456;&#20013;,&#29305;&#21035;&#26159;&#21518;&#21322;&#37096;&#20998;&#26159;&#38656;&#35201;&#21453;&#22797;&#38405;&#35835;&#25165;&#33021;&#29702;&#35299;&#28165;&#26970;&#30340;&#12290;&#22914;&#26524;&#36935;&#21040;&#20219;&#20309;&#30097;&#38382;,&#35831;&#35760;&#20303;,&#33521;&#25991;&#29256;&#26412;&#30340;reference&#26159;&#24799;&#19968;&#26631;&#20934;&#30340;&#21442;&#32771;&#36164;&#26009;&#12290;)            </p><p>                &#36825;&#37096;&#20998;&#19981;&#21253;&#21547;&#22823;&#37327;&#30340;Java&#20195;&#30721;&#20363;&#23376;&#12290;&#25105;&#20204;&#20551;&#23450;&#20320;&#24050;&#32463;&#20102;&#35299;&#22914;&#20309;&#20351;&#29992;Java&#33258;&#36523;&#30340;&#38598;&#21512;&#31867;&#26694;&#26550;(Java's collections framework)&#12290; &#20854;&#23454;&#22914;&#26524;&#26159;&#36825;&#26679;, &#36825;&#37324;&#23601;&#30495;&#30340;&#27809;&#26377;&#20160;&#20040;&#19996;&#35199;&#38656;&#35201;&#23398;&#20064;&#20102;...  &#29992;&#19968;&#21477;&#35805;&#26469;&#20570;&#20010;&#24635;&#32467;,&#20320;&#23601;&#29992;&#20320;&#24050;&#32463;&#25484;&#25569;&#30340;&#30693;&#35782;&#26469;&#20351;&#29992;&#23427;&#20204;&#21543;&#65292;&#19981;&#29992;&#20026;&#20102;&#36866;&#24212;Hibernate&#32780;&#20316;&#20986;&#25913;&#21464;.            </p><p>                Hibernate&#21487;&#20197;&#25345;&#20037;&#21270;&#20197;&#19979;java&#38598;&#21512;&#30340;&#23454;&#20363;, &#21253;&#25324;<tt class="literal">java.util.Map</tt>,                <tt class="literal">java.util.Set</tt>,                <tt class="literal">java.util.SortedMap</tt>,                <tt class="literal">java.util.SortedSet</tt>,                <tt class="literal">java.util.List</tt>, &#21644;&#20219;&#20309;&#25345;&#20037;&#23454;&#20307;&#25110;&#20540;&#30340;&#25968;&#32452;&#12290;&#31867;&#22411;&#20026;<tt class="literal">java.util.Collection</tt>&#25110;&#32773;<tt class="literal">java.util.List</tt>&#30340;&#23646;&#24615;&#36824;&#21487;&#20197;&#20351;&#29992;"bag"&#35821;&#20041;&#26469;&#25345;&#20037;&#12290;            </p><p>                &#35686;&#21578;&#65306;&#29992;&#20110;&#25345;&#20037;&#21270;&#30340;&#38598;&#21512;&#65292;&#38500;&#20102;&#38598;&#21512;&#25509;&#21475;&#22806;&#65292;&#19981;&#33021;&#20445;&#30041;&#20219;&#20309;&#23454;&#29616;&#36825;&#20123;&#25509;&#21475;&#30340;&#31867;&#25152;&#38468;&#21152;&#30340;&#35821;&#20041;(&#20363;&#22914;:<tt class="literal">LinkedHashSet</tt>&#24102;&#26469;&#30340;&#36845;&#20195;&#39034;&#24207;)&#12290;&#25152;&#26377;&#30340;&#25345;&#20037;&#21270;&#38598;&#21512;&#65292;&#23454;&#38469;&#19978;&#37117;&#21508;&#33258;&#25353;&#29031;                <tt class="literal">HashMap</tt>,                <tt class="literal">HashSet</tt>,                <tt class="literal">TreeMap</tt>,                <tt class="literal">TreeSet</tt> &#21644;                <tt class="literal">ArrayList</tt> &#30340;&#35821;&#20041;&#30452;&#25509;&#24037;&#20316;&#12290;&#26356;&#28145;&#20837;&#22320;&#35828;&#65292;&#23545;&#20110;&#19968;&#20010;&#21253;&#21547;&#38598;&#21512;&#30340;&#23646;&#24615;&#26469;&#35828;&#65292;&#24517;&#39035;&#25226;Java&#31867;&#22411;&#23450;&#20041;&#20026;&#25509;&#21475;&#65288;&#20063;&#23601;&#26159;<tt class="literal">Map</tt>, <tt class="literal">Set</tt> &#25110;&#32773;<tt class="literal">List</tt>&#31561;&#65289;&#65292;&#32780;&#32477;&#19981;&#33021;&#26159;<tt class="literal">HashMap</tt>, <tt class="literal">TreeSet</tt> &#25110;&#32773; <tt class="literal">ArrayList</tt>&#12290;&#23384;&#22312;&#36825;&#20010;&#38480;&#21046;&#30340;&#21407;&#22240;&#26159;&#65292;&#22312;&#20320;&#19981;&#30693;&#36947;&#30340;&#26102;&#20505;&#65292;Hibernate&#26263;&#20013;&#25226;&#20320;&#30340;<tt class="literal">Map</tt>, <tt class="literal">Set</tt> &#21644; <tt class="literal">List</tt> &#30340;&#23454;&#20363;&#26367;&#25442;&#25104;&#20102;&#23427;&#33258;&#24049;&#30340;&#20851;&#20110;<tt class="literal">Map</tt>, <tt class="literal">Set</tt> &#25110;&#32773; <tt class="literal">List</tt> &#30340;&#23454;&#29616;&#12290;&#65288;&#25152;&#20197;&#22312;&#20320;&#30340;&#31243;&#24207;&#20013;,&#35880;&#24910;&#20351;&#29992;<tt class="literal">==</tt>&#25805;&#20316;&#31526;&#12290;&#65289;(&#35793;&#32773;&#35828;&#26126;: &#20026;&#20102;&#25552;&#39640;&#24615;&#33021;&#31561;&#26041;&#38754;&#30340;&#21407;&#22240;,&#22312;Hibernate&#20013;&#23454;&#29616;&#20102;&#20960;&#20046;&#25152;&#26377;&#30340;Java&#38598;&#21512;&#30340;&#25509;&#21475; &#12290;)            </p><pre class="programlisting">Cat cat = new DomesticCat();Cat kitten = new DomesticCat();....Set kittens = new HashSet();kittens.add(kitten);cat.setKittens(kittens);session.save(cat);kittens = cat.getKittens(); //Okay, kittens collection is a Set(HashSet) cat.getKittens(); //Error!</pre><p>               	&#38598;&#21512;&#36981;&#20174;&#23545;&#20540;&#31867;&#22411;&#30340;&#36890;&#24120;&#35268;&#21017;&#65306;&#19981;&#33021;&#20849;&#20139;&#24341;&#29992;, &#19982;&#20854;&#21253;&#21547;&#30340;&#23454;&#20307;&#20849;&#23384;&#20129;&#12290;&#30001;&#20110;&#23384;&#22312;&#24213;&#23618;&#30340;&#20851;&#32852;&#27169;&#22411;&#65292;&#38598;&#21512;&#19981;&#25903;&#25345;&#31354;&#20540;&#35821;&#20041;&#65307;&#24182;&#19988;hibernate&#19981;&#20250;&#21306;&#20998;&#19968;&#20010;null&#30340;&#38598;&#21512;&#24341;&#29992;&#21644;&#19968;&#20010;&#19981;&#23384;&#22312;&#20803;&#32032;&#30340;&#31354;&#38598;&#21512;&#12290;            </p><p>                &#38598;&#21512;&#23454;&#20363;&#22312;&#25968;&#25454;&#24211;&#20013;&#26681;&#25454;&#25351;&#21521;&#23545;&#24212;&#23454;&#20307;&#30340;&#22806;&#38190;&#32780;&#24471;&#21040;&#21306;&#21035;&#12290;&#36825;&#20010;&#22806;&#38190;&#34987;&#31216;&#20026;<span class="emphasis"><em>&#38598;&#21512;&#30340;&#20851;&#38190;&#23383;</em></span>&#12290;&#22312;Hibernate&#37197;&#32622;&#25991;&#20214;&#20013;&#20351;&#29992;<tt class="literal">&lt;key&gt;</tt> &#20803;&#32032;&#26469;&#26144;&#23556;&#36825;&#20010;&#38598;&#21512;&#30340;&#20851;&#38190;&#23383;&#12290;            </p><p>                &#38598;&#21512;&#21487;&#20197;&#21253;&#21547;&#20960;&#20046;&#25152;&#26377;&#30340;Hibernate&#31867;&#22411;, &#21253;&#25324;&#25152;&#26377;&#30340;&#22522;&#26412;&#31867;&#22411;, &#33258;&#23450;&#20041;&#31867;&#22411;,&#23454;&#20307;&#31867;&#22411;&#21644;&#32452;&#20214;&#12290;&#38598;&#21512;&#19981;&#33021;&#21253;&#21547;&#20854;&#20182;&#38598;&#21512;&#12290;&#36825;&#20123;&#34987;&#21253;&#21547;&#30340;&#20803;&#32032;&#30340;&#31867;&#22411;&#34987;&#31216;&#20026;<span class="emphasis"><em>&#38598;&#21512;&#20803;&#32032;&#31867;&#22411;</em></span>&#12290;&#38598;&#21512;&#30340;&#20803;&#32032;&#22312;Hibernate&#20013;&#34987;&#26144;&#23556;&#20026;<tt class="literal">&lt;element&gt;</tt>, <tt class="literal">&lt;composite-element&gt;</tt>, <tt class="literal">&lt;one-to-many&gt;</tt>, <tt class="literal">&lt;many-to-many&gt;</tt> &#25110;&#32773; <tt class="literal">&lt;many-to-any&gt;</tt>&#12290;            </p><p>                &#38500;&#20102;<tt class="literal">Set</tt>&#21644;<tt class="literal">Bag</tt>&#20043;&#22806;&#30340;&#25152;&#26377;&#38598;&#21512;&#31867;&#22411;&#37117;&#26377;&#19968;&#20010;<span class="emphasis"><em>&#32034;&#24341;(index)</em></span>&#23383;&#27573;,&#36825;&#20010;&#23383;&#27573;&#26144;&#23556;&#21040;&#19968;&#20010;&#25968;&#32452;&#25110;&#32773;<tt class="literal">List</tt>&#30340;&#32034;&#24341;&#25110;&#32773;<tt class="literal">Map</tt>&#30340;key&#12290;Map&#30340;&#32034;&#24341;&#30340;&#31867;&#22411;&#21487;&#20197;&#26159;&#20219;&#20309;&#22522;&#26412;&#31867;&#22411;, &#23454;&#20307;&#31867;&#22411;&#25110;&#32773;&#29978;&#33267;&#26159;&#19968;&#20010;&#32452;&#21512;&#31867;&#22411;(&#20294;&#19981;&#33021;&#26159;&#19968;&#20010;&#38598;&#21512;&#31867;&#22411;)&#12290;&#25968;&#32452;&#21644;list&#30340;&#32034;&#24341;&#32943;&#23450;&#26159;&#25972;&#22411;,<tt class="literal">integer</tt>&#12290;&#22312;Hibernate&#37197;&#32622;&#25991;&#20214;&#20013;&#20351;&#29992; <tt class="literal">&lt;index&gt;</tt>, <tt class="literal">&lt;index-many-to-many&gt;</tt>, <tt class="literal">&lt;composite-index&gt;</tt> &#25110;&#32773; <tt class="literal">&lt;index-many-to-any&gt;</tt>&#31561;&#20803;&#32032;&#26469;&#26144;&#23556;&#32034;&#24341;&#12290;            </p><p>                &#38598;&#21512;&#31867;&#21487;&#20197;&#20135;&#29983;&#30456;&#24403;&#22810;&#31181;&#31867;&#30340;&#26144;&#23556;&#65292;&#28085;&#30422;&#20102;&#24456;&#22810;&#36890;&#24120;&#30340;&#20851;&#31995;&#27169;&#22411;&#12290;&#25105;&#20204;&#24314;&#35758;&#20320;&#32451;&#20064;&#20351;&#29992;schema&#29983;&#25104;&#24037;&#20855;, &#20197;&#20415;&#23545;&#22914;&#20309;&#25226;&#19981;&#21516;&#30340;&#26144;&#23556;&#23450;&#20041;&#36716;&#25442;&#20026;&#25968;&#25454;&#24211;&#34920;&#26377;&#19968;&#20010;&#24863;&#24615;&#35748;&#35782;&#12290;                            </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="collections-s1-3"></a>6.2.&nbsp;&#26144;&#23556;&#38598;&#21512;&#65288;Mapping a Collection&#65289;</h2></div></div><div></div></div><p>                &#22312;Hibernate&#37197;&#32622;&#25991;&#20214;&#20013;&#20351;&#29992;<tt class="literal">&lt;set&gt;</tt>,                <tt class="literal">&lt;list&gt;</tt>,                <tt class="literal">&lt;map&gt;</tt>,                <tt class="literal">&lt;bag&gt;</tt>,                <tt class="literal">&lt;array&gt;</tt> &#21644;                <tt class="literal">&lt;primitive-array&gt;</tt>&#31561;&#20803;&#32032;&#26469;&#23450;&#20041;&#38598;&#21512;,&#32780;<tt class="literal">&lt;map&gt;</tt>&#26159;&#26368;&#20856;&#22411;&#30340;&#19968;&#20010;&#12290;            </p><div class="programlistingco"><pre class="programlisting">&lt;map    name="propertyName"                                         <span class="co"><img src="../images/callouts/1.png" alt="(1)"></span>    table="table_name"                                          <span class="co"><img src="../images/callouts/2.png" alt="(2)"></span>    schema="schema_name"                                        <span class="co"><img src="../images/callouts/3.png" alt="(3)"></span>    lazy="true|false"                                           <span class="co"><img src="../images/callouts/4.png" alt="(4)"></span>    inverse="true|false"                                        <span class="co"><img src="../images/callouts/5.png" alt="(5)"></span>    cascade="all|none|save-update|delete|all-delete-orphan"     <span class="co"><img src="../images/callouts/6.png" alt="(6)"></span>    sort="unsorted|natural|comparatorClass"                     <span class="co"><img src="../images/callouts/7.png" alt="(7)"></span>    order-by="column_name asc|desc"                             <span class="co"><img src="../images/callouts/8.png" alt="(8)"></span>    where="arbitrary sql where condition"                       <span class="co"><img src="../images/callouts/9.png" alt="(9)"></span>    outer-join="true|false|auto"                                <span class="co"><img src="../images/callouts/10.png" alt="(10)"></span>    batch-size="N"                                              <span class="co">(11)</span>    access="field|property|ClassName"                           <span class="co">(12)</span>&gt;    &lt;key .... /&gt;    &lt;index .... /&gt;    &lt;element .... /&gt;&lt;/map&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><img src="../images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>                            <tt class="literal">name</tt> &#38598;&#21512;&#23646;&#24615;&#30340;&#21517;&#31216;                        </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="../images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>							<tt class="literal">table</tt> &#65288;&#21487;&#36873;&#8212;&#8212;&#40664;&#35748;&#20026;&#23646;&#24615;&#30340;&#21517;&#31216;&#65289;&#36825;&#20010;&#38598;&#21512;&#34920;&#30340;&#21517;&#31216;(&#19981;&#33021;&#22312;&#19968;&#23545;&#22810;&#30340;&#20851;&#32852;&#20851;&#31995;&#20013;&#20351;&#29992;)                        </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="../images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>                            <tt class="literal">schema</tt> (&#21487;&#36873;) &#34920;&#30340;schema&#30340;&#21517;&#31216;, &#20182;&#23558;&#35206;&#30422;&#22312;&#26681;&#20803;&#32032;&#20013;&#23450;&#20041;&#30340;schema                        </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="../images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>                            <tt class="literal">lazy</tt> (&#21487;&#36873;&#8212;&#8212;&#40664;&#35748;&#20026;<tt class="literal">false</tt>)                            lazy(&#21487;&#36873;--&#40664;&#35748;&#20026;false) &#20801;&#35768;&#24310;&#36831;&#21152;&#36733;&#65288;lazy initialization &#65289;(&#19981;&#33021;&#22312;&#25968;&#32452;&#20013;&#20351;&#29992;)                        </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="../images/callouts/5.png" alt="5" border="0"></td><td valign="top" align="left"><p>                            <tt class="literal">inverse</tt> (&#21487;&#36873;&#8212;&#8212;&#40664;&#35748;&#20026;<tt class="literal">false</tt>)                            &#26631;&#35760;&#36825;&#20010;&#38598;&#21512;&#20316;&#20026;&#21452;&#21521;&#20851;&#32852;&#20851;&#31995;&#20013;&#30340;&#26041;&#21521;&#19968;&#31471;&#12290;                        </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="../images/callouts/6.png" alt="6" border="0"></td><td valign="top" align="left"><p>                            <tt class="literal">cascade</tt> (&#21487;&#36873;&#8212;&#8212;&#40664;&#35748;&#20026;<tt class="literal">none</tt>)                            &#35753;&#25805;&#20316;&#32423;&#32852;&#21040;&#23376;&#23454;&#20307;                        </p></td></tr><tr><td width="5%" valign="top" align="left"><img src="../images/callouts/7.png" alt="7" border="0"></td><td valign="top" align="left"><p>

⌨️ 快捷键说明

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