collections.html

来自「是一个中文的Hibernate库文档」· HTML 代码 · 共 521 行 · 第 1/5 页

HTML
521 行
字号
    &lt;list-index column="sortOrder"/&gt;    &lt;many-to-many column="addressId" class="Address"/&gt;&lt;/array&gt;</pre><p>                &#19968;&#20010;map,&#36890;&#36807;&#23383;&#31526;&#20018;&#30340;&#32034;&#24341;&#26469;&#25351;&#26126;&#26085;&#26399;&#65306;            </p><pre class="programlisting">&lt;map name="holidays"         table="holidays"         schema="dbo"         order-by="hol_name asc"&gt;    &lt;key column="id"/&gt;    &lt;map-key column="hol_name" type="string"/&gt;    &lt;element column="hol_date" type="date"/&gt;&lt;/map&gt;</pre><p>                &#19968;&#20010;&#32452;&#20214;&#30340;&#21015;&#34920;&#65306;&#65288;&#19979;&#19968;&#31456;&#35752;&#35770;&#65289;            </p><pre class="programlisting">&lt;list name="carComponents"         table="CarComponents"&gt;    &lt;key column="carId"/&gt;    &lt;list-index column="sortOrder"/&gt;    &lt;composite-element class="CarComponent"&gt;        &lt;property name="price"/&gt;        &lt;property name="type"/&gt;        &lt;property name="serialNumber" column="serialNum"/&gt;    &lt;/composite-element&gt;&lt;/list&gt;</pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="collections-onetomany"></a>7.2.5.&nbsp;&#19968;&#23545;&#22810;&#20851;&#32852;&#65288;One-to-many Associations&#65289;</h3></div></div><div></div></div><p>                <span class="emphasis"><em>&#19968;&#23545;&#22810;&#20851;&#32852;</em></span><span class="emphasis"><em>&#36890;&#36807;&#22806;&#38190;</em></span>&#36830;&#25509;&#20004;&#20010;&#31867;&#23545;&#24212;&#30340;&#34920;,&#32780;&#27809;&#26377;&#20013;&#38388;&#38598;&#21512;&#34920;&#12290; &#36825;&#20010;&#20851;&#31995;&#27169;&#22411;&#22833;&#21435;&#20102;&#19968;&#20123;Java&#38598;&#21512;&#30340;&#35821;&#20041;:            </p><div class="itemizedlist"><ul type="disc" compact><li><p>                        &#19968;&#20010;&#34987;&#21253;&#21547;&#30340;&#23454;&#20307;&#30340;&#23454;&#20363;&#21482;&#33021;&#34987;&#21253;&#21547;&#22312;&#19968;&#20010;&#38598;&#21512;&#30340;&#23454;&#20363;&#20013;                    </p></li><li><p>                        &#19968;&#20010;&#34987;&#21253;&#21547;&#30340;&#23454;&#20307;&#30340;&#23454;&#20363;&#21482;&#33021;&#23545;&#24212;&#20110;&#38598;&#21512;&#32034;&#24341;&#30340;&#19968;&#20010;&#20540;&#20013;                    </p></li></ul></div><p>                &#19968;&#20010;&#20174;<tt class="literal">Product</tt>&#21040;<tt class="literal">Part</tt>&#30340;&#20851;&#32852;&#38656;&#35201;&#20851;&#38190;&#23383;&#23383;&#27573;,&#21487;&#33021;&#36824;&#26377;&#19968;&#20010;&#32034;&#24341;&#23383;&#27573;&#25351;&#21521;<tt class="literal">Part</tt>&#25152;&#23545;&#24212;&#30340;&#34920;&#12290; <tt class="literal">&lt;one-to-many&gt;</tt>&#26631;&#35760;&#25351;&#26126;&#20102;&#19968;&#20010;&#19968;&#23545;&#22810;&#30340;&#20851;&#32852;&#12290;            </p><div class="programlistingco"><pre class="programlisting">&lt;one-to-many         class="ClassName"                                  <span class="co">(1)</span>        not-found="ignore|exception"                       <span class="co">(2)</span>        entity-name="EntityName"                           <span class="co">(3)</span>        node="element-name"        embed-xml="true|false"    /&gt;</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left">(1)</td><td valign="top" align="left"><p>                            <tt class="literal">class</tt>(&#24517;&#39035;):&#34987;&#20851;&#32852;&#31867;&#30340;&#21517;&#31216;&#12290;                        </p></td></tr><tr><td width="5%" valign="top" align="left">(2)</td><td valign="top" align="left"><p>		                <tt class="literal">not-found</tt> (&#21487;&#36873; - &#40664;&#35748;&#20026;<tt class="literal">exception</tt>): 		               &#25351;&#26126;&#33509;&#32531;&#23384;&#30340;&#26631;&#31034;&#20540;&#20851;&#32852;&#30340;&#34892;&#32570;&#22833;,&#35813;&#22914;&#20309;&#22788;&#29702;:		                <tt class="literal">ignore</tt> &#20250;&#25226;&#32570;&#22833;&#30340;&#34892;&#20316;&#20026;&#19968;&#20010;&#31354;&#20851;&#32852;&#22788;&#29702;&#12290;		            </p></td></tr><tr><td width="5%" valign="top" align="left">(3)</td><td valign="top" align="left"><p>                        <tt class="literal">entity-name</tt> (&#21487;&#36873;): &#34987;&#20851;&#32852;&#30340;&#31867;&#30340;&#23454;&#20307;&#21517;&#65292;&#20316;&#20026;<tt class="literal">class</tt>&#30340;&#26367;&#20195;&#12290;                    </p></td></tr></table></div></div><p>                &#20363;&#23376;            </p><pre class="programlisting">&lt;set name="bars"&gt;    &lt;key column="foo_id"/&gt;    &lt;one-to-many class="org.hibernate.Bar"/&gt;&lt;/set&gt;</pre><p>                &#27880;&#24847;:<tt class="literal">&lt;one-to-many&gt;</tt>&#20803;&#32032;&#19981;&#38656;&#35201;&#23450;&#20041;&#20219;&#20309;&#23383;&#27573;&#12290; &#20063;&#19981;&#38656;&#35201;&#25351;&#23450;&#34920;&#21517;&#12290;                            </p><p>                <span class="emphasis"><em>&#37325;&#35201;&#25552;&#31034;</em></span>:&#22914;&#26524;<tt class="literal">&#19968;&#23545;&#22810;</tt>&#20851;&#32852;&#20013;&#30340;&#22806;&#38190;&#23383;&#27573;&#23450;&#20041;&#25104;<tt class="literal">NOT NULL</tt>,&#20320;&#24517;&#39035;&#25226;<tt class="literal">&lt;key&gt;</tt>&#26144;&#23556;&#22768;&#26126;&#20026;<tt class="literal">not-null="true"</tt>,&#25110;&#32773;&#20351;&#29992;<span class="emphasis"><em>&#21452;&#21521;&#20851;&#32852;</em></span>&#65292;&#24182;&#19988;&#26631;&#26126;<tt class="literal">inverse="true"</tt>&#12290;&#21442;&#38405;&#26412;&#31456;&#21518;&#38754;&#20851;&#20110;&#21452;&#21521;&#20851;&#32852;&#30340;&#35752;&#35770;&#12290;            </p><p>            &#19979;&#38754;&#30340;&#20363;&#23376;&#23637;&#31034;&#19968;&#20010;<tt class="literal">Part</tt>&#23454;&#20307;&#30340;map,&#25226;name&#20316;&#20026;&#20851;&#38190;&#23383;&#12290;(  <tt class="literal">partName</tt> &#26159;<tt class="literal">Part</tt>&#30340;&#25345;&#20037;&#21270;&#23646;&#24615;)&#12290;&#27880;&#24847;&#20854;&#20013;&#30340;&#22522;&#20110;&#20844;&#24335;&#30340;&#32034;&#24341;&#30340;&#29992;&#27861;&#12290;        </p><pre class="programlisting">&lt;map name="parts"        cascade="all"&gt;    &lt;key column="productId" not-null="true"/&gt;    &lt;map-key formula="partName"/&gt;    &lt;one-to-many class="Part"/&gt;&lt;/map&gt;</pre></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="collections-advancedmappings"></a>7.3.&nbsp;&#39640;&#32423;&#38598;&#21512;&#26144;&#23556;&#65288;Advanced collection mappings&#65289;</h2></div></div><div></div></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="collections-sorted"></a>7.3.1.&nbsp;&#26377;&#24207;&#38598;&#21512;&#65288;Sorted collections&#65289;</h3></div></div><div></div></div><p>                Hibernate&#25903;&#25345;&#23454;&#29616;<tt class="literal">java.util.SortedMap</tt>&#21644;<tt class="literal">java.util.SortedSet</tt>&#30340;&#38598;&#21512;&#12290;&#20320;&#24517;&#39035;&#22312;&#26144;&#23556;&#25991;&#20214;&#20013;&#25351;&#23450;&#19968;&#20010;&#27604;&#36739;&#22120;&#65306;            </p><pre class="programlisting">&lt;set name="aliases"             table="person_aliases"             sort="natural"&gt;    &lt;key column="person"/&gt;    &lt;element column="name" type="string"/&gt;&lt;/set&gt;&lt;map name="holidays" sort="my.custom.HolidayComparator"&gt;    &lt;key column="year_id"/&gt;    &lt;map-key column="hol_name" type="string"/&gt;    &lt;element column="hol_date" type="date"/&gt;&lt;/map&gt;</pre><p>                <tt class="literal">sort</tt>&#23646;&#24615;&#20013;&#20801;&#35768;&#30340;&#20540;&#21253;&#25324;<tt class="literal">unsorted</tt>,<tt class="literal">natural</tt>&#21644;&#26576;&#20010;&#23454;&#29616;&#20102;<tt class="literal">java.util.Comparator</tt>&#30340;&#31867;&#30340;&#21517;&#31216;&#12290;            </p><p>                &#20998;&#31867;&#38598;&#21512;&#30340;&#34892;&#20026;&#20107;&#23454;&#19978;&#35937;<tt class="literal">java.util.TreeSet</tt>&#25110;&#32773;<tt class="literal">java.util.TreeMap</tt>&#12290;            </p><p>                &#22914;&#26524;&#20320;&#24076;&#26395;&#25968;&#25454;&#24211;&#33258;&#24049;&#23545;&#38598;&#21512;&#20803;&#32032;&#25490;&#24207;&#65292;&#21487;&#20197;&#21033;&#29992;<tt class="literal">set</tt>,<tt class="literal">bag</tt>&#25110;&#32773;<tt class="literal">map</tt>&#26144;&#23556;&#20013;&#30340;<tt class="literal">order-by</tt>&#23646;&#24615;&#12290;&#36825;&#20010;&#35299;&#20915;&#26041;&#26696;&#21482;&#33021;&#22312;jdk1.4&#25110;&#32773;&#26356;&#39640;&#30340;jdk&#29256;&#26412;&#20013;&#25165;&#21487;&#20197;&#23454;&#29616;(&#36890;&#36807;LinkedHashSet&#25110;&#32773;LinkedHashMap&#23454;&#29616;)&#12290; &#23427;&#26159;&#22312;SQL&#26597;&#35810;&#20013;&#23436;&#25104;&#25490;&#24207;&#65292;&#32780;&#19981;&#26159;&#22312;&#20869;&#23384;&#20013;&#12290;            </p><pre class="programlisting">&lt;set name="aliases" table="person_aliases" order-by="lower(name) asc"&gt;    &lt;key column="person"/&gt;    &lt;element column="name" type="string"/&gt;&lt;/set&gt;&lt;map name="holidays" order-by="hol_date, hol_name"&gt;    &lt;key column="year_id"/&gt;    &lt;map-key column="hol_name" type="string"/&gt;    &lt;element column="hol_date" type="date"/&gt;&lt;/map&gt;</pre><p>                &#27880;&#24847;: &#36825;&#20010;<tt class="literal">order-by</tt>&#23646;&#24615;&#30340;&#20540;&#26159;&#19968;&#20010;SQL&#25490;&#24207;&#23376;&#21477;&#32780;&#19981;&#26159;HQL&#30340;&#65281;            </p><p>                &#20851;&#32852;&#36824;&#21487;&#20197;&#22312;&#36816;&#34892;&#26102;&#20351;&#29992;&#38598;&#21512;<tt class="literal">filter()</tt>&#26681;&#25454;&#20219;&#24847;&#30340;&#26465;&#20214;&#26469;&#25490;&#24207;&#12290;            </p><pre class="programlisting">sortedUsers = s.createFilter( group.getUsers(), "order by this.name" ).list();</pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="collections-bidirectional"></a>7.3.2.&nbsp;&#21452;&#21521;&#20851;&#32852;&#65288;Bidirectional associations&#65289;</h3></div></div><div></div></div><p>                <span class="emphasis"><em>&#21452;&#21521;&#20851;&#32852;</em></span>&#20801;&#35768;&#36890;&#36807;&#20851;&#32852;&#30340;&#20219;&#19968;&#31471;&#35775;&#38382;&#21478;&#22806;&#19968;&#31471;&#12290;&#22312;Hibernate&#20013;, &#25903;&#25345;&#20004;&#31181;&#31867;&#22411;&#30340;&#21452;&#21521;&#20851;&#32852;:                </p><div class="variablelist"><dl><dt><span class="term">&#19968;&#23545;&#22810;&#65288;one-to-many&#65289;</span></dt><dd><p>						    Set&#25110;&#32773;bag&#20540;&#22312;&#19968;&#31471;, &#21333;&#29420;&#20540;(&#38750;&#38598;&#21512;)&#22312;&#21478;&#22806;&#19968;&#31471;                            </p></dd><dt><span class="term">&#22810;&#23545;&#22810;&#65288;many-to-many&#65289;</span></dt><dd><p>				        &#20004;&#31471;&#37117;&#26159;set&#25110;bag&#20540;                            </p></dd></dl></div><p>                        </p><p>

⌨️ 快捷键说明

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