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

📄 inheritance.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
        ...    &lt;/subclass&gt;    &lt;subclass name="ChequePayment" discriminator-value="CHEQUE"&gt;        ...    &lt;/subclass&gt;&lt;/class&gt;</pre><p>                &#23545;&#19978;&#36848;&#20219;&#20309;&#19968;&#31181;&#26144;&#23556;&#31574;&#30053;&#32780;&#35328;&#65292;&#25351;&#21521;&#26681;&#31867;<tt class="literal">Payment</tt>&#30340;                &#20851;&#32852;&#26159;&#20351;&#29992;<tt class="literal">&lt;many-to-one&gt;</tt>&#36827;&#34892;&#26144;&#23556;&#30340;&#12290;            </p><pre class="programlisting">&lt;many-to-one name="payment" column="PAYMENT_ID" class="Payment"/&gt;</pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="inheritance-tableperconcrete"></a>10.1.5.&nbsp;&#27599;&#20010;&#20855;&#20307;&#31867;&#19968;&#24352;&#34920;(Table per concrete class)</h3></div></div><div></div></div><p>                &#23545;&#20110;&#8220;&#27599;&#20010;&#20855;&#20307;&#31867;&#19968;&#24352;&#34920;&#8221;&#30340;&#26144;&#23556;&#31574;&#30053;&#65292;&#21487;&#20197;&#37319;&#29992;&#20004;&#31181;&#26041;&#27861;&#12290;&#31532;&#19968;&#31181;&#26041;&#27861;&#26159;&#20351;&#29992;                <tt class="literal">&lt;union-subclass&gt;</tt>&#12290;            </p><pre class="programlisting">&lt;class name="Payment"&gt;    &lt;id name="id" type="long" column="PAYMENT_ID"&gt;        &lt;generator class="sequence"/&gt;    &lt;/id&gt;    &lt;property name="amount" column="AMOUNT"/&gt;    ...    &lt;union-subclass name="CreditCardPayment" table="CREDIT_PAYMENT"&gt;        &lt;property name="creditCardType" column="CCTYPE"/&gt;        ...    &lt;/union-subclass&gt;    &lt;union-subclass name="CashPayment" table="CASH_PAYMENT"&gt;        ...    &lt;/union-subclass&gt;    &lt;union-subclass name="ChequePayment" table="CHEQUE_PAYMENT"&gt;        ...    &lt;/union-subclass&gt;&lt;/class&gt;</pre><p>                &#36825;&#37324;&#28041;&#21450;&#19977;&#24352;&#34920;&#12290;&#27599;&#24352;&#34920;&#20026;&#23545;&#24212;&#31867;&#30340;&#25152;&#26377;&#23646;&#24615;&#65288;&#21253;&#25324;&#20174;&#36229;&#31867;&#32487;&#25215;&#30340;&#23646;&#24615;&#65289;&#23450;&#20041;&#30456;&#24212;&#23383;&#27573;&#12290;            </p><p>                &#36825;&#31181;&#26041;&#24335;&#30340;&#23616;&#38480;&#22312;&#20110;&#65292;&#22914;&#26524;&#19968;&#20010;&#23646;&#24615;&#22312;&#36229;&#31867;&#20013;&#20570;&#20102;&#26144;&#23556;&#65292;&#20854;&#23383;&#27573;&#21517;&#24517;&#39035;&#19982;&#25152;&#26377;&#23376;&#31867;                &#34920;&#20013;&#23450;&#20041;&#30340;&#30456;&#21516;&#12290;(&#25105;&#20204;&#21487;&#33021;&#20250;&#22312;Hibernate&#30340;&#21518;&#32493;&#21457;&#24067;&#29256;&#26412;&#20013;&#25918;&#23485;&#27492;&#38480;&#21046;&#12290;)                 &#19981;&#20801;&#35768;&#22312;&#32852;&#21512;&#23376;&#31867;(union subclass)&#30340;&#32487;&#25215;&#23618;&#27425;&#20013;&#20351;&#29992;&#26631;&#35782;&#29983;&#25104;&#22120;&#31574;&#30053;(identity generator strategy),                 &#23454;&#38469;&#19978;, &#20027;&#38190;&#30340;&#31181;&#23376;(primary key seed)&#19981;&#24471;&#19981;&#20026;&#21516;&#19968;&#32487;&#25215;&#23618;&#27425;&#20013;&#30340;&#20840;&#37096;&#34987;&#32852;&#21512;&#23376;&#31867;&#25152;&#20849;&#29992;.            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="inheritance-tableperconcreate-polymorphism"></a>10.1.6.&nbsp;Table per concrete class, using implicit polymorphism</h3></div><div><h3 class="title"><a name="inheritance-tableperconcreate-polymorphism"></a>10.1.6.&nbsp;Table per concrete class, using implicit polymorphism</h3></div></div><div></div></div><p>                &#21478;&#19968;&#31181;&#21487;&#20379;&#36873;&#25321;&#30340;&#26041;&#27861;&#26159;&#37319;&#29992;&#38544;&#24335;&#22810;&#24577;&#65306;            </p><pre class="programlisting">&lt;class name="CreditCardPayment" table="CREDIT_PAYMENT"&gt;    &lt;id name="id" type="long" column="CREDIT_PAYMENT_ID"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;property name="amount" column="CREDIT_AMOUNT"/&gt;    ...&lt;/class&gt;&lt;class name="CashPayment" table="CASH_PAYMENT"&gt;    &lt;id name="id" type="long" column="CASH_PAYMENT_ID"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;property name="amount" column="CASH_AMOUNT"/&gt;    ...&lt;/class&gt;&lt;class name="ChequePayment" table="CHEQUE_PAYMENT"&gt;    &lt;id name="id" type="long" column="CHEQUE_PAYMENT_ID"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;property name="amount" column="CHEQUE_AMOUNT"/&gt;    ...&lt;/class&gt;</pre><p>                &#27880;&#24847;&#65292;&#25105;&#20204;&#27809;&#26377;&#22312;&#20219;&#20309;&#22320;&#26041;&#26126;&#30830;&#30340;&#25552;&#21450;&#25509;&#21475;<tt class="literal">Payment</tt>&#12290;&#21516;&#26102;&#27880;&#24847;                <tt class="literal">Payment</tt>&#30340;&#23646;&#24615;&#22312;&#27599;&#20010;&#23376;&#31867;&#20013;&#37117;&#36827;&#34892;&#20102;&#26144;&#23556;&#12290;&#22914;&#26524;&#20320;&#24819;&#36991;&#20813;&#37325;&#22797;&#65292;                &#21487;&#20197;&#32771;&#34385;&#20351;&#29992;XML&#23454;&#20307;(&#20363;&#22914;&#65306;&#20301;&#20110;<tt class="literal">DOCTYPE</tt>&#22768;&#26126;&#20869;&#30340;                <tt class="literal">[ &lt;!ENTITY allproperties SYSTEM "allproperties.xml"&gt; ]</tt>                &#21644;&#26144;&#23556;&#20013;&#30340;<tt class="literal">&amp;allproperties;</tt>)&#12290;            </p><p>                &#36825;&#31181;&#26041;&#27861;&#30340;&#32570;&#38519;&#22312;&#20110;&#65292;&#22312;Hibernate&#25191;&#34892;&#22810;&#24577;&#26597;&#35810;&#26102;(polymorphic queries)&#26080;&#27861;&#29983;&#25104;&#24102;                <tt class="literal">UNION</tt>&#30340;SQL&#35821;&#21477;&#12290;            </p><p>                &#23545;&#20110;&#36825;&#31181;&#26144;&#23556;&#31574;&#30053;&#32780;&#35328;&#65292;&#36890;&#24120;&#29992;<tt class="literal">&lt;any&gt;</tt>&#26469;&#23454;&#29616;&#21040;                <tt class="literal">Payment</tt>&#30340;&#22810;&#24577;&#20851;&#32852;&#26144;&#23556;&#12290;            </p><pre class="programlisting">&lt;any name="payment" meta-type="string" id-type="long"&gt;    &lt;meta-value value="CREDIT" class="CreditCardPayment"/&gt;    &lt;meta-value value="CASH" class="CashPayment"/&gt;    &lt;meta-value value="CHEQUE" class="ChequePayment"/&gt;    &lt;column name="PAYMENT_CLASS"/&gt;    &lt;column name="PAYMENT_ID"/&gt;&lt;/any&gt;</pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="inheritace-mixingpolymorphism"></a>10.1.7.&nbsp;&#38544;&#24335;&#22810;&#24577;&#21644;&#20854;&#20182;&#32487;&#25215;&#26144;&#23556;&#28151;&#21512;&#20351;&#29992;</h3></div></div><div></div></div><p>                &#23545;&#36825;&#19968;&#26144;&#23556;&#36824;&#26377;&#19968;&#28857;&#38656;&#35201;&#27880;&#24847;&#12290;&#22240;&#20026;&#27599;&#20010;&#23376;&#31867;&#37117;&#22312;&#21508;&#33258;&#29420;&#31435;&#30340;&#20803;&#32032;<tt class="literal">&lt;class&gt;</tt>                &#20013;&#26144;&#23556;(&#24182;&#19988;<tt class="literal">Payment</tt>&#21482;&#26159;&#19968;&#20010;&#25509;&#21475;)&#65292;&#27599;&#20010;&#23376;&#31867;&#21487;&#20197;&#24456;&#23481;&#26131;&#30340;&#25104;&#20026;&#21478;&#19968;                &#20010;&#32487;&#25215;&#20307;&#31995;&#20013;&#30340;&#19968;&#37096;&#20998;&#65281;(&#20320;&#20173;&#28982;&#21487;&#20197;&#23545;&#25509;&#21475;<tt class="literal">Payment</tt>&#20351;&#29992;&#22810;&#24577;&#26597;&#35810;&#12290;)            </p><pre class="programlisting">&lt;class name="CreditCardPayment" table="CREDIT_PAYMENT"&gt;    &lt;id name="id" type="long" column="CREDIT_PAYMENT_ID"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    &lt;discriminator column="CREDIT_CARD" type="string"/&gt;    &lt;property name="amount" column="CREDIT_AMOUNT"/&gt;    ...    &lt;subclass name="MasterCardPayment" discriminator-value="MDC"/&gt;    &lt;subclass name="VisaPayment" discriminator-value="VISA"/&gt;&lt;/class&gt;&lt;class name="NonelectronicTransaction" table="NONELECTRONIC_TXN"&gt;    &lt;id name="id" type="long" column="TXN_ID"&gt;        &lt;generator class="native"/&gt;    &lt;/id&gt;    ...    &lt;joined-subclass name="CashPayment" table="CASH_PAYMENT"&gt;        &lt;key column="PAYMENT_ID"/&gt;        &lt;property name="amount" column="CASH_AMOUNT"/&gt;        ...    &lt;/joined-subclass&gt;    &lt;joined-subclass name="ChequePayment" table="CHEQUE_PAYMENT"&gt;        &lt;key column="PAYMENT_ID"/&gt;        &lt;property name="amount" column="CHEQUE_AMOUNT"/&gt;        ...    &lt;/joined-subclass&gt;&lt;/class&gt;</pre><p>                &#25105;&#20204;&#36824;&#26159;&#27809;&#26377;&#26126;&#30830;&#30340;&#25552;&#21040;<tt class="literal">Payment</tt>&#12290;                &#22914;&#26524;&#25105;&#20204;&#38024;&#23545;&#25509;&#21475;<tt class="literal">Payment</tt>&#25191;&#34892;&#26597;&#35810;                 &#8212;&#8212;&#22914;<tt class="literal">from Payment</tt>&#8212;&#8212; Hibernate                &#33258;&#21160;&#36820;&#22238;<tt class="literal">CreditCardPayment</tt>(&#21644;&#23427;&#30340;&#23376;&#31867;&#65292;&#22240;&#20026;                &#23427;&#20204;&#20063;&#23454;&#29616;&#20102;&#25509;&#21475;<tt class="literal">Payment</tt>)&#12289;                <tt class="literal">CashPayment</tt>&#21644;<tt class="literal">Chequepayment</tt>&#30340;&#23454;&#20363;&#65292;                &#20294;&#19981;&#36820;&#22238;<tt class="literal">NonelectronicTransaction</tt>&#30340;&#23454;&#20363;&#12290;            </p></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="inheritance-limitations"></a>10.2.&nbsp;&#38480;&#21046;</h2></div></div><div></div></div><p>                &#23545;&#8220;&#27599;&#20010;&#20855;&#20307;&#31867;&#26144;&#23556;&#19968;&#24352;&#34920;&#8221;&#65288;table per concrete-class&#65289;&#30340;&#26144;&#23556;&#31574;&#30053;&#32780;&#35328;&#65292;&#38544;&#24335;&#22810;&#24577;&#30340;                &#26041;&#24335;&#26377;&#19968;&#23450;&#30340;&#38480;&#21046;&#12290;&#32780;<tt class="literal">&lt;union-subclass&gt;</tt>&#26144;&#23556;&#30340;&#38480;&#21046;&#21017;&#27809;&#26377;&#37027;                &#20040;&#20005;&#26684;&#12290;            </p><p>                &#19979;&#38754;&#34920;&#26684;&#20013;&#21015;&#20986;&#20102;&#22312;Hibernte&#20013;&#8220;&#27599;&#20010;&#20855;&#20307;&#31867;&#19968;&#24352;&#34920;&#8221;&#30340;&#31574;&#30053;&#21644;&#38544;&#24335;&#22810;&#24577;&#30340;&#38480;&#21046;&#12290;                        </p><div class="table"><a name="d0e8645"></a><p class="title"><b>&#34920;&nbsp;10.1.&nbsp;&#32487;&#25215;&#26144;&#23556;&#29305;&#24615;(Features of inheritance mappings)			</b></p><table summary="&#32487;&#25215;&#26144;&#23556;&#29305;&#24615;(Features of inheritance mappings)			" border="1"><colgroup><col align="left"><col align="left"><col align="left"><col align="left"><col align="left"><col align="left"><col align="left"><col align="left"></colgroup><thead><tr><th align="left">&#32487;&#25215;&#31574;&#30053;(Inheritance strategy)</th><th align="left">&#22810;&#24577;&#22810;&#23545;&#19968;</th><th align="left">&#22810;&#24577;&#19968;&#23545;&#19968;</th><th align="left">&#22810;&#24577;&#19968;&#23545;&#22810;</th><th align="left">&#22810;&#24577;&#22810;&#23545;&#22810;</th><th align="left">&#22810;&#24577; <tt class="literal">load()/get()</tt></th><th align="left">&#22810;&#24577;&#26597;&#35810;</th><th align="left">&#22810;&#24577;&#36830;&#25509;(join)</th><th align="left">&#22806;&#36830;&#25509;(Outer join)&#25235;&#21462;</th></tr></thead><tbody><tr><td align="left">&#27599;&#20010;&#31867;&#20998;&#23618;&#32467;&#26500;&#19968;&#24352;&#34920;</td><td align="left"><tt class="literal">&lt;many-to-one&gt;</tt></td><td align="left"><tt class="literal">&lt;one-to-one&gt;</tt></td><td align="left"><tt class="literal">&lt;one-to-many&gt;</tt></td><td align="left"><tt class="literal">&lt;many-to-many&gt;</tt></td><td align="left"><tt class="literal">s.get(Payment.class, id)</tt></td><td align="left"><tt class="literal">from Payment p</tt></td><td align="left"><tt class="literal">from Order o join o.payment p</tt></td><td align="left"><span class="emphasis"><em>&#25903;&#25345;</em></span></td></tr><tr><td align="left">&#27599;&#20010;&#23376;&#31867;&#19968;&#24352;&#34920;</td><td align="left"><tt class="literal">&lt;many-to-one&gt;</tt></td><td align="left"><tt class="literal">&lt;one-to-one&gt;</tt></td><td align="left"><tt class="literal">&lt;one-to-many&gt;</tt></td><td align="left"><tt class="literal">&lt;many-to-many&gt;</tt></td><td align="left"><tt class="literal">s.get(Payment.class, id)</tt></td><td align="left"><tt class="literal">from Payment p</tt></td><td align="left"><tt class="literal">from Order o join o.payment p</tt></td><td align="left"><span class="emphasis"><em>&#25903;&#25345;</em></span></td></tr><tr><td align="left">&#27599;&#20010;&#20855;&#20307;&#31867;&#19968;&#24352;&#34920;(union-subclass)</td><td align="left"><tt class="literal">&lt;many-to-one&gt;</tt></td><td align="left"><tt class="literal">&lt;one-to-one&gt;</tt></td><td align="left"><tt class="literal">&lt;one-to-many&gt;</tt> (&#20165;&#23545;&#20110;<tt class="literal">inverse="true"</tt>&#30340;&#24773;&#20917;)</td><td align="left"><tt class="literal">&lt;many-to-many&gt;</tt></td><td align="left"><tt class="literal">s.get(Payment.class, id)</tt></td><td align="left"><tt class="literal">from Payment p</tt></td><td align="left"><tt class="literal">from Order o join o.payment p</tt></td><td align="left"><span class="emphasis"><em>&#25903;&#25345;</em></span></td></tr><tr><td align="left">&#27599;&#20010;&#20855;&#20307;&#31867;&#19968;&#24352;&#34920;(&#38544;&#24335;&#22810;&#24577;)</td><td align="left"><tt class="literal">&lt;any&gt;</tt></td><td align="left"><span class="emphasis"><em>&#19981;&#25903;&#25345;</em></span></td><td align="left"><span class="emphasis"><em>&#19981;&#25903;&#25345;</em></span></td><td align="left"><tt class="literal">&lt;many-to-any&gt;</tt></td><td align="left"><tt class="literal">s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()</tt></td><td align="left"><tt class="literal">from Payment p</tt></td><td align="left"><span class="emphasis"><em>&#19981;&#25903;&#25345;</em></span></td><td align="left"><span class="emphasis"><em>&#19981;&#25903;&#25345;</em></span></td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="components.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="objectstate.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;9&nbsp;&#31456;&nbsp;&#32452;&#20214;&#65288;Component&#65289;&#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;11&nbsp;&#31456;&nbsp;&#19982;&#23545;&#35937;&#20849;&#20107;</td></tr></table></div></body></html>

⌨️ 快捷键说明

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