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

📄 components.html

📁 关于hibernate的中文文档 关于hibernate的中文文档 关于hibernate的中文文档 关于hibernate的中文文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
    </p><p>        &#32452;&#21512;&#20803;&#32032;&#26377;&#20010;&#29305;&#21035;&#30340;&#29992;&#27861;&#26159;&#23427;&#21487;&#20197;&#21253;&#21547;&#19968;&#20010;<tt class="literal">&lt;many-to-one&gt;</tt>&#20803;&#32032;&#12290;&#31867;&#20284;&#36825;&#26679;&#30340;&#26144;&#23556;&#20801;&#35768;&#20320;&#23558;&#19968;&#20010;many-to-many&#20851;&#32852;&#34920;&#26144;&#23556;&#20026;&#32452;&#21512;&#20803;&#32032;&#30340;&#38598;&#21512;&#12290;(A mapping like this allows you to map extra columns of a many-to-many association table to the composite element class.) &#25509;&#19979;&#26469;&#30340;&#30340;&#20363;&#23376;&#26159;&#20174;<tt class="literal">Order</tt>&#21040;<tt class="literal">Item</tt>&#30340;&#19968;&#20010;&#22810;&#23545;&#22810;&#30340;&#20851;&#32852;&#20851;&#31995;, &#20851;&#32852;&#23646;&#24615;&#26159; <tt class="literal">purchaseDate</tt>, <tt class="literal">price</tt> &#21644; <tt class="literal">quantity</tt> &#12290;    </p><pre class="programlisting">&lt;class name="eg.Order" .... &gt;    ....    &lt;set name="purchasedItems" table="purchase_items" lazy="true"&gt;        &lt;key column="order_id"&gt;        &lt;composite-element class="eg.Purchase"&gt;            &lt;property name="purchaseDate"/&gt;            &lt;property name="price"/&gt;            &lt;property name="quantity"/&gt;            &lt;many-to-one name="item" class="eg.Item"/&gt; &lt;!-- class attribute is optional --&gt;        &lt;/composite-element&gt;    &lt;/set&gt;&lt;/class&gt;</pre><p>        &#24403;&#28982;&#65292;&#24403;&#20320;&#23450;&#20041;Item&#26102;&#65292;&#20320;&#26080;&#27861;&#24341;&#29992;&#36825;&#20123;purchase&#65292;&#22240;&#27492;&#20320;&#26080;&#27861;&#23454;&#29616;&#21452;&#21521;&#20851;&#32852;&#26597;&#35810;&#12290;&#35760;&#20303;&#32452;&#20214;&#26159;&#20540;&#31867;&#22411;&#65292;&#24182;&#19988;&#19981;&#20801;&#35768;&#20849;&#20139;&#24341;&#29992;&#12290;&#26576;&#19968;&#20010;&#29305;&#23450;&#30340;<tt class="literal">Purchase</tt> &#21487;&#20197;&#25918;&#22312;<tt class="literal">Order</tt>&#30340;&#38598;&#21512;&#20013;&#65292;&#20294;&#23427;&#19981;&#33021;&#21516;&#26102;&#34987;<tt class="literal">Item</tt>&#25152;&#24341;&#29992;&#12290;    </p><p>&#20854;&#23454;&#32452;&#21512;&#20803;&#32032;&#30340;&#36825;&#20010;&#29992;&#27861;&#21487;&#20197;&#25193;&#23637;&#21040;&#19977;&#37325;&#25110;&#22810;&#37325;&#20851;&#32852;:</p><pre class="programlisting">&lt;class name="eg.Order" .... &gt;    ....    &lt;set name="purchasedItems" table="purchase_items" lazy="true"&gt;        &lt;key column="order_id"&gt;        &lt;composite-element class="eg.OrderLine"&gt;            &lt;many-to-one name="purchaseDetails" class="eg.Purchase"/&gt;            &lt;many-to-one name="item" class="eg.Item"/&gt;        &lt;/composite-element&gt;    &lt;/set&gt;&lt;/class&gt;</pre><p>        &#22312;&#26597;&#35810;&#20013;&#65292;&#34920;&#36798;&#32452;&#21512;&#20803;&#32032;&#30340;&#35821;&#27861;&#21644;&#20851;&#32852;&#21040;&#20854;&#20182;&#23454;&#20307;&#30340;&#35821;&#27861;&#26159;&#19968;&#26679;&#30340;&#12290;     </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="components-asmapindex"></a>8.3.&nbsp;&#32452;&#20214;&#20316;&#20026;Map&#30340;&#32034;&#24341;&#65288;Components as Map indices &#65289;</h2></div></div><div></div></div><p>        <tt class="literal">&lt;composite-map-key&gt;</tt>&#20803;&#32032;&#20801;&#35768;&#20320;&#26144;&#23556;&#19968;&#20010;&#32452;&#20214;&#31867;&#20316;&#20026;&#19968;&#20010;<tt class="literal">Map</tt>&#30340;key&#65292;&#21069;&#25552;&#26159;&#20320;&#24517;&#39035;&#27491;&#30830;&#30340;&#22312;&#36825;&#20010;&#31867;&#20013;&#37325;&#20889;&#20102;<tt class="literal">hashCode()</tt> &#21644; <tt class="literal">equals()</tt>&#26041;&#27861;&#12290;    </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="components-compositeid"></a>8.4.&nbsp;&#32452;&#20214;&#20316;&#20026;&#32852;&#21512;&#26631;&#35782;&#31526;(Components as composite identifiers)</h2></div></div><div></div></div><p>       &#20320;&#21487;&#20197;&#20351;&#29992;&#19968;&#20010;&#32452;&#20214;&#20316;&#20026;&#19968;&#20010;&#23454;&#20307;&#31867;&#30340;&#26631;&#35782;&#31526;&#12290; &#20320;&#30340;&#32452;&#20214;&#31867;&#24517;&#39035;&#28385;&#36275;&#20197;&#19979;&#35201;&#27714;&#65306;    </p><div class="itemizedlist"><ul type="disc" compact><li><p>            &#23427;&#24517;&#39035;&#23454;&#29616;<tt class="literal">java.io.Serializable</tt>&#25509;&#21475;        </p></li><li><p>            &#23427;&#24517;&#39035;&#37325;&#26032;&#23454;&#29616;<tt class="literal">equals()</tt>&#21644;<tt class="literal">hashCode()</tt>&#26041;&#27861;, &#22987;&#32456;&#21644;&#32452;&#21512;&#20851;&#38190;&#23383;&#22312;&#25968;&#25454;&#24211;&#20013;&#30340;&#27010;&#24565;&#20445;&#25345;&#19968;&#33268;        </p></li></ul></div><p>        <span class="emphasis"><em>&#27880;&#24847;&#65306;&#22312;Hibernate3&#20013;&#65292;&#31532;&#20108;&#20010;&#35201;&#27714;&#24182;&#38750;&#26159;Hibernate&#24378;&#21046;&#24517;&#39035;&#30340;&#12290;&#20294;&#26368;&#22909;&#36825;&#26679;&#20570;&#12290;</em></span>    </p><p>        &#20320;&#19981;&#33021;&#20351;&#29992;&#19968;&#20010;<tt class="literal">IdentifierGenerator</tt>&#20135;&#29983;&#32452;&#21512;&#20851;&#38190;&#23383;&#12290;&#19968;&#20010;&#24212;&#29992;&#31243;&#24207;&#24517;&#39035;&#20998;&#37197;&#23427;&#33258;&#24049;&#30340;&#26631;&#35782;&#31526;&#12290;    </p><p>        &#20351;&#29992;<tt class="literal">&lt;composite-id&gt;</tt> &#26631;&#31614;(&#24182;&#19988;&#20869;&#23884;<tt class="literal">&lt;key-property&gt;</tt>&#20803;&#32032;)&#20195;&#26367;&#36890;&#24120;&#30340;<tt class="literal">&lt;id&gt;</tt>&#26631;&#31614;&#12290;&#27604;&#22914;,<tt class="literal">OrderLine</tt>&#31867;&#20855;&#26377;&#19968;&#20010;&#20027;&#38190;&#65292;&#36825;&#20010;&#20027;&#38190;&#20381;&#36182;&#20110;<tt class="literal">Order</tt>&#30340;(&#32852;&#21512;)&#20027;&#38190;&#12290;    </p><pre class="programlisting">&lt;class name="OrderLine"&gt;        &lt;composite-id name="id" class="OrderLineId"&gt;        &lt;key-property name="lineId"/&gt;        &lt;key-property name="orderId"/&gt;        &lt;key-property name="customerId"/&gt;    &lt;/composite-id&gt;        &lt;property name="name"/&gt;        &lt;many-to-one name="order" class="Order"            insert="false" update="false"&gt;        &lt;column name="orderId"/&gt;        &lt;column name="customerId"/&gt;    &lt;/many-to-one&gt;    ....    &lt;/class&gt;</pre><p>        &#29616;&#22312;&#65292;&#20219;&#20309;&#25351;&#21521;<tt class="literal">OrderLine</tt>&#30340;&#22806;&#38190;&#37117;&#26159;&#22797;&#21512;&#30340;&#12290;&#22312;&#20320;&#30340;&#26144;&#23556;&#25991;&#20214;&#20013;&#65292;&#24517;&#39035;&#20026;&#20854;&#20182;&#31867;&#20063;&#36825;&#26679;&#22768;&#26126;&#12290;&#20363;&#22914;&#65292;&#19968;&#20010;&#25351;&#21521;<tt class="literal">OrderLine</tt>&#30340;&#20851;&#32852;&#21487;&#33021;&#34987;&#36825;&#26679;&#26144;&#23556;&#65306;    </p><pre class="programlisting">&lt;many-to-one name="orderLine" class="OrderLine"&gt;&lt;!-- the "class" attribute is optional, as usual --&gt;    &lt;column name="lineId"/&gt;    &lt;column name="orderId"/&gt;    &lt;column name="customerId"/&gt;&lt;/many-to-one&gt;</pre><p>        &#65288;&#27880;&#24847;&#22312;&#21508;&#20010;&#22320;&#26041;<tt class="literal">&lt;column&gt;</tt>&#26631;&#31614;&#37117;&#26159;<tt class="literal">column</tt>&#23646;&#24615;&#30340;&#26367;&#20195;&#20889;&#27861;&#12290;&#65289;    </p><p>        &#25351;&#21521;<tt class="literal">OrderLine</tt>&#30340;<tt class="literal">&#22810;&#23545;&#22810;</tt>&#20851;&#32852;&#20063;&#20351;&#29992;&#32852;&#21512;&#22806;&#38190;:    </p><pre class="programlisting">&lt;set name="undeliveredOrderLines"&gt;    &lt;key column name="warehouseId"/&gt;    &lt;many-to-many class="OrderLine"&gt;        &lt;column name="lineId"/&gt;        &lt;column name="orderId"/&gt;        &lt;column name="customerId"/&gt;    &lt;/many-to-many&gt;&lt;/set&gt;</pre><p>        &#22312;<tt class="literal">Order</tt>&#20013;,<tt class="literal">OrderLine</tt>&#30340;&#38598;&#21512;&#21017;&#26159;&#36825;&#26679;:    </p><pre class="programlisting">&lt;set name="orderLines" inverse="true"&gt;    &lt;key&gt;        &lt;column name="orderId"/&gt;        &lt;column name="customerId"/&gt;    &lt;/key&gt;    &lt;one-to-many class="OrderLine"/&gt;&lt;/set&gt;</pre><p>        (&#19982;&#36890;&#24120;&#19968;&#26679;,<tt class="literal">&lt;one-to-many&gt;</tt>&#20803;&#32032;&#19981;&#22768;&#26126;&#20219;&#20309;&#21015;.)    </p><p>        &#20551;&#33509;<tt class="literal">OrderLine</tt>&#26412;&#36523;&#25317;&#26377;&#19968;&#20010;&#38598;&#21512;,&#23427;&#20063;&#20855;&#26377;&#32452;&#21512;&#22806;&#38190;&#12290;    </p><pre class="programlisting">&lt;class name="OrderLine"&gt;    ....    ....    &lt;list name="deliveryAttempts"&gt;        &lt;key&gt;   &lt;!-- a collection inherits the composite key type --&gt;            &lt;column name="lineId"/&gt;            &lt;column name="orderId"/&gt;            &lt;column name="customerId"/&gt;        &lt;/key&gt;        &lt;list-index column="attemptId" base="1"/&gt;        &lt;composite-element class="DeliveryAttempt"&gt;            ...        &lt;/composite-element&gt;    &lt;/set&gt;&lt;/class&gt;</pre></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="components-dynamic"></a>8.5.&nbsp;&#21160;&#24577;&#32452;&#20214; &#65288;Dynamic components&#65289;</h2></div></div><div></div></div><p>        &#20320;&#29978;&#33267;&#21487;&#20197;&#26144;&#23556;<tt class="literal">Map</tt>&#31867;&#22411;&#30340;&#23646;&#24615;&#65306;    </p><pre class="programlisting">&lt;dynamic-component name="userAttributes"&gt;    &lt;property name="foo" column="FOO" type="string"/&gt;    &lt;property name="bar" column="BAR" type="integer"/&gt;    &lt;many-to-one name="baz" class="Baz" column="BAZ_ID"/&gt;&lt;/dynamic-component&gt;</pre><p>        &#20174;<tt class="literal">&lt;dynamic-component&gt;</tt>&#26144;&#23556;&#30340;&#35821;&#20041;&#19978;&#26469;&#35762;&#65292;&#23427;&#21644;<tt class="literal">&lt;component&gt;</tt>&#26159;&#30456;&#21516;&#30340;&#12290;        &#36825;&#31181;&#26144;&#23556;&#31867;&#22411;&#30340;&#20248;&#28857;&#22312;&#20110;&#36890;&#36807;&#20462;&#25913;&#26144;&#23556;&#25991;&#20214;&#65292;&#23601;&#21487;&#20197;&#20855;&#26377;&#22312;&#37096;&#32626;&#26102;&#26816;&#27979;&#30495;&#23454;&#23646;&#24615;&#30340;&#33021;&#21147;&#12290;&#21033;&#29992;&#19968;&#20010;DOM&#35299;&#26512;&#22120;&#65292;&#20063;&#21487;&#20197;&#22312;&#31243;&#24207;&#36816;&#34892;&#26102;&#25805;&#20316;&#26144;&#23556;&#25991;&#20214;&#12290;        &#26356;&#22909;&#30340;&#26159;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;<tt class="literal">Configuration</tt>&#23545;&#35937;&#26469;&#35775;&#38382;&#65288;&#25110;&#32773;&#20462;&#25913;&#65289;Hibernate&#30340;&#36816;&#34892;&#26102;&#20803;&#27169;&#22411;&#12290;     </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="associations.html">&#19978;&#19968;&#39029;</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">&#19978;&#19968;&#32423;</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="inheritance.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;7&nbsp;&#31456;&nbsp;&#20851;&#32852;&#20851;&#31995;&#26144;&#23556;&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">&#36215;&#22987;&#39029;</a></td><td width="40%" align="right" valign="top">&nbsp;&#31532;&nbsp;9&nbsp;&#31456;&nbsp;&#32487;&#25215;&#26144;&#23556;(Inheritance Mappings)</td></tr></table></div></body></html>

⌨️ 快捷键说明

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