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

📄 persistent-classes.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
            <tt class="literal">equals()</tt> &#21644; <tt class="literal">hashCode()</tt>&#26041;&#27861;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p> 										&#24819;&#25226;&#25345;&#20037;&#31867;&#30340;&#23454;&#20363;&#25918;&#20837;<tt class="literal">Set</tt>&#20013;&#65288;&#24403;&#34920;&#31034;&#22810;&#20540;&#20851;&#32852;&#26102;&#65292;&#25512;&#33616;&#36825;&#20040;&#20570;&#65289;																		</p></li><li><p>                		&#24819;&#37325;&#29992;&#33073;&#31649;&#23454;&#20363;                </p></li></ul></div><p>						Hibernate&#20445;&#35777;&#65292;&#25345;&#20037;&#21270;&#26631;&#35782;&#65288;&#25968;&#25454;&#24211;&#30340;&#34892;&#65289;&#21644;&#20165;&#22312;&#29305;&#23450;&#20250;&#35805;&#33539;&#22260;&#20869;&#30340;Java&#26631;&#35782;&#26159;&#31561;&#20540;&#30340;&#12290;&#22240;&#27492;&#65292;&#19968;&#26086;						&#25105;&#20204;&#28151;&#21512;&#20102;&#20174;&#19981;&#21516;&#20250;&#35805;&#20013;&#33719;&#21462;&#30340;&#23454;&#20363;&#65292;&#22914;&#26524;&#25105;&#20204;&#24076;&#26395;<tt class="literal">Set</tt>&#26377;&#26126;&#30830;&#30340;&#35821;&#20041;&#65292;&#25105;&#20204;&#24517;						&#39035;&#23454;&#29616;<tt class="literal">equals()</tt> &#21644;<tt class="literal">hashCode()</tt>&#12290;				</p><p>						&#23454;&#29616;<tt class="literal">equals()</tt>/<tt class="literal">hashCode()</tt>&#26368;&#26174;&#32780;&#26131;&#35265;&#30340;&#26041;&#27861;&#26159;&#27604;&#36739;&#20004;&#20010;&#23545;&#35937;						&#26631;&#35782;&#31526;&#30340;&#20540;&#12290;&#22914;&#26524;&#20540;&#30456;&#21516;&#65292;&#21017;&#20004;&#20010;&#23545;&#35937;&#23545;&#24212;&#20110;&#25968;&#25454;&#24211;&#30340;&#21516;&#19968;&#34892;&#65292;&#22240;&#27492;&#23427;&#20204;&#26159;&#30456;&#31561;&#30340;&#65288;&#22914;&#26524;&#37117;&#34987;&#28155;&#21152;&#21040;						<tt class="literal">Set</tt>&#65292;&#21017;&#22312;<tt class="literal">Set</tt>&#20013;&#21482;&#26377;&#19968;&#20010;&#20803;&#32032;&#65289;&#12290;&#19981;&#24184;&#30340;&#26159;&#65292;&#23545;&#29983;&#25104;&#30340;&#26631;&#35782;&#19981;&#33021;						&#20351;&#29992;&#36825;&#31181;&#26041;&#27861;&#12290;Hibernate&#20165;&#23545;&#37027;&#20123;&#25345;&#20037;&#21270;&#23545;&#35937;&#36171;&#26631;&#35782;&#20540;&#65292;&#19968;&#20010;&#26032;&#21019;&#24314;&#30340;&#23454;&#20363;&#23558;&#19981;&#20250;&#26377;&#20219;&#20309;&#26631;&#35782;&#20540;&#12290;&#27492;&#22806;&#65292;						&#22914;&#26524;&#19968;&#20010;&#23454;&#20363;&#27809;&#26377;&#34987;&#20445;&#23384;(unsaved)&#65292;&#24182;&#19988;&#22312;&#19968;&#20010;<tt class="literal">Set</tt>&#20013;&#65292;&#20445;&#23384;&#23427;&#23558;&#20250;&#32473;&#36825;&#20010;&#23545;&#35937;						&#36171;&#19968;&#20010;&#26631;&#35782;&#20540;&#12290;&#22914;&#26524;<tt class="literal">equals()</tt> &#21644; <tt class="literal">hashCode()</tt>&#26159;&#22522;&#20110;&#26631;&#35782;&#20540;						&#23454;&#29616;&#30340;&#65292;&#21017;&#20854;&#21704;&#24076;&#30721;&#23558;&#20250;&#25913;&#21464;&#65292;&#36829;&#21453;<tt class="literal">Set</tt>&#30340;&#22865;&#32422;&#12290;&#24314;&#35758;&#21435;Hibernate&#30340;&#31449;&#28857;&#30475;&#20851;&#20110;&#36825;&#20010;						&#38382;&#39064;&#30340;&#20840;&#37096;&#35752;&#35770;&#12290;&#27880;&#24847;&#65292;&#36825;&#19981;&#26159;&#19968;&#20010;Hibernate&#38382;&#39064;&#65292;&#32780;&#26159;&#19968;&#33324;&#30340;Java&#23545;&#35937;&#26631;&#35782;&#21644;&#30456;&#31561;&#30340;&#35821;&#20041;&#38382;&#39064;&#12290;				</p><p>						&#25105;&#20204;&#24314;&#35758;&#20351;&#29992;<span class="emphasis"><em>&#19994;&#21153;&#38190;&#20540;&#30456;&#31561;(Business key equality)</em></span>&#26469;&#23454;&#29616;<tt class="literal">equals()</tt>						&#21644; <tt class="literal">hashCode()</tt>&#12290;&#19994;&#21153;&#38190;&#20540;&#30456;&#31561;&#30340;&#24847;&#24605;&#26159;&#65292;<tt class="literal">equals()</tt>&#26041;&#27861;						&#20165;&#20165;&#27604;&#36739;&#26469;&#33258;&#19994;&#21153;&#38190;&#30340;&#23646;&#24615;&#65292;&#19968;&#20010;&#19994;&#21153;&#38190;&#23558;&#26631;&#35782;&#22312;&#30495;&#23454;&#19990;&#30028;&#37324;&#65288;&#19968;&#20010;<span class="emphasis"><em>&#22825;&#29983;&#30340;</em></span>&#20505;&#36873;&#38190;&#65289;						&#30340;&#23454;&#20363;&#12290;				</p><pre class="programlisting">public class Cat {    ...    public boolean equals(Object other) {        if (this == other) return true;        if ( !(other instanceof Cat) ) return false;        final Cat cat = (Cat) other;        if ( !cat.getLitterId().equals( getLitterId() ) ) return false;        if ( !cat.getMother().equals( getMother() ) ) return false;        return true;    }    public int hashCode() {        int result;        result = getMother().hashCode();        result = 29 * result + getLitterId();        return result;    }}</pre><p>						&#27880;&#24847;&#65292;&#19994;&#21153;&#38190;&#19981;&#24517;&#26159;&#35937;&#25968;&#25454;&#24211;&#30340;&#20027;&#38190;&#37027;&#26679;&#26159;&#22266;&#23450;&#19981;&#21464;&#30340;&#65288;&#21442;&#35265;<a href="transactions.html#transactions-basics-identity" title="12.1.3.&nbsp;&#20851;&#27880;&#23545;&#35937;&#26631;&#35782;(Considering object identity)">&#31532;&nbsp;12.1.3&nbsp;&#33410; &#8220;&#20851;&#27880;&#23545;&#35937;&#26631;&#35782;(Considering object identity)&#8221;</a>&#65289;&#12290;						&#23545;&#19994;&#21153;&#38190;&#32780;&#35328;&#65292;&#19981;&#21487;&#21464;&#25110;&#21807;&#19968;&#30340;&#23646;&#24615;&#26159;&#22909;&#30340;&#20505;&#36873;&#12290;				</p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="persistent-classes-dynamicmodels"></a>5.4.&nbsp;&#21160;&#24577;&#27169;&#22411;(Dynamic models)</h2></div></div><div></div></div><p>						<span class="emphasis"><em>&#27880;&#24847;&#65292;&#20197;&#19979;&#29305;&#24615;&#22312;&#24403;&#21069;&#26159;&#22522;&#20110;&#23454;&#39564;&#32771;&#34385;&#30340;&#65292;&#21487;&#33021;&#20250;&#22312;&#23558;&#26469;&#25913;&#21464;&#12290;</em></span>				</p><p>						&#36816;&#34892;&#26399;&#30340;&#25345;&#20037;&#21270;&#23454;&#20307;&#27809;&#26377;&#24517;&#35201;&#35937;POJO&#31867;&#25110;JavaBean&#23545;&#35937;&#19968;&#26679;&#34920;&#31034;&#12290;Hibernate&#20063;&#25903;&#25345;&#21160;&#24577;&#27169;&#22411;						&#65288;&#22312;&#36816;&#34892;&#26399;&#20351;&#29992;<tt class="literal">Map</tt>&#30340;<tt class="literal">Map</tt>&#65289;&#21644;&#35937;DOM4J&#30340;&#26641;&#27169;&#22411;&#37027;						&#26679;&#30340;&#23454;&#20307;&#34920;&#31034;&#12290;&#20351;&#29992;&#36825;&#31181;&#26041;&#27861;&#65292;&#20320;&#19981;&#29992;&#20889;&#25345;&#20037;&#21270;&#31867;&#65292;&#21482;&#20889;&#26144;&#23556;&#25991;&#20214;&#23601;&#34892;&#20102;&#12290;				</p><p>						Hibernate&#40664;&#35748;&#24037;&#20316;&#22312;&#26222;&#36890;POJO&#27169;&#24335;&#12290;&#20320;&#21487;&#20197;&#20351;&#29992;&#37197;&#32622;&#36873;&#39033;<tt class="literal">default_entity_mode</tt>&#65292;						&#23545;&#29305;&#23450;&#30340;<tt class="literal">SessionFactory</tt>&#65292;&#35774;&#32622;&#19968;&#20010;&#40664;&#35748;&#30340;&#23454;&#20307;&#34920;&#31034;&#27169;&#24335;&#12290;						&#65288;&#21442;&#35265;<a href="session-configuration.html#configuration-optional-properties" title="&#34920;&nbsp;4.3.&nbsp;&#xA;                Hibernate&#37197;&#32622;&#23646;&#24615;&#xA;            ">&#34920;&nbsp;4.3 &#8220;                Hibernate&#37197;&#32622;&#23646;&#24615;            &#8221;</a>&#12290;&#65289;				</p><p>						&#19979;&#38754;&#26159;&#29992;<tt class="literal">Map</tt>&#26469;&#34920;&#31034;&#30340;&#20363;&#23376;&#12290;&#39318;&#20808;&#65292;&#22312;&#26144;&#23556;&#25991;&#20214;&#20013;&#65292;&#35201;&#22768;&#26126;						<tt class="literal">entity-name</tt>&#26469;&#20195;&#26367;&#65288;&#25110;&#22806;&#21152;&#65289;&#19968;&#20010;&#31867;&#21517;&#12290;				</p><pre class="programlisting">&lt;hibernate-mapping&gt;    &lt;class entity-name="Customer"&gt;        &lt;id name="id"            type="long"            column="ID"&gt;            &lt;generator class="sequence"/&gt;        &lt;/id&gt;        &lt;property name="name"            column="NAME"            type="string"/&gt;        &lt;property name="address"            column="ADDRESS"            type="string"/&gt;        &lt;many-to-one name="organization"            column="ORGANIZATION_ID"            class="Organization"/&gt;        &lt;bag name="orders"            inverse="true"            lazy="false"            cascade="all"&gt;            &lt;key column="CUSTOMER_ID"/&gt;            &lt;one-to-many class="Order"/&gt;        &lt;/bag&gt;    &lt;/class&gt;    &lt;/hibernate-mapping&gt;</pre><p>						&#27880;&#24847;&#65292;&#34429;&#28982;&#26159;&#29992;&#30446;&#26631;&#31867;&#21517;&#26469;&#22768;&#26126;&#20851;&#32852;&#30340;&#65292;&#20294;&#26159;&#20851;&#32852;&#30340;&#30446;&#26631;&#31867;&#22411;&#38500;&#20102;&#26159;POJO&#20043;&#22806;&#65292;&#20063;&#21487;&#20197;						&#26159;&#19968;&#20010;&#21160;&#24577;&#30340;&#23454;&#20307;&#12290;				</p><p>						&#22312;&#20351;&#29992;<tt class="literal">dynamic-map</tt>&#20026;<tt class="literal">SessionFactory</tt>						&#35774;&#32622;&#20102;&#40664;&#35748;&#30340;&#23454;&#20307;&#27169;&#24335;&#20043;&#21518;&#65292;&#21487;&#20197;&#22312;&#36816;&#34892;&#26399;&#20351;&#29992;<tt class="literal">Map</tt>&#30340;						<tt class="literal">Map</tt>&#12290;				</p><pre class="programlisting">Session s = openSession();Transaction tx = s.beginTransaction();Session s = openSession();// Create a customerMap david = new HashMap();david.put("name", "David");// Create an organizationMap foobar = new HashMap();foobar.put("name", "Foobar Inc.");// Link bothdavid.put("organization", foobar);// Save boths.save("Customer", david);s.save("Organization", foobar);tx.commit();s.close();</pre><p>						&#21160;&#24577;&#26144;&#23556;&#30340;&#22909;&#22788;&#26159;&#65292;&#20351;&#21407;&#22411;&#22312;&#19981;&#38656;&#35201;&#23454;&#20307;&#31867;&#23454;&#29616;&#30340;&#24773;&#20917;&#19979;&#65292;&#24555;&#36895;&#36716;&#21464;&#26102;&#38388;&#12290;&#28982;&#32780;&#65292;&#20320;&#26080;&#27861;&#36827;&#34892;						&#32534;&#35793;&#26399;&#30340;&#31867;&#22411;&#26816;&#26597;&#65292;&#24182;&#21487;&#33021;&#30001;&#27492;&#20250;&#22788;&#29702;&#24456;&#22810;&#30340;&#36816;&#34892;&#26399;&#24322;&#24120;&#12290;&#24184;&#20111;&#26377;&#20102;Hibernate&#26144;&#23556;&#65292;&#23427;&#20351;&#24471;&#25968;						&#25454;&#24211;&#30340;schema&#33021;&#23481;&#26131;&#30340;&#35268;&#26684;&#21270;&#21644;&#21512;&#29702;&#21270;&#65292;&#24182;&#20801;&#35768;&#31245;&#21518;&#28155;&#21152;&#27491;&#30830;&#30340;&#39046;&#22495;&#27169;&#22411;&#30340;&#26368;&#26032;&#23454;&#29616;&#12290;				</p><p>						&#23454;&#20307;&#34920;&#31034;&#27169;&#24335;&#20063;&#33021;&#22312;&#27599;&#20010;<tt class="literal">Session</tt>&#30340;&#22522;&#30784;&#19978;&#35774;&#32622;&#65306;				</p><pre class="programlisting">Session dynamicSession = pojoSession.getSession(EntityMode.MAP);// Create a customerMap david = new HashMap();david.put("name", "David");dynamicSession.save("Customer", david);...dynamicSession.flush();dynamicSession.close()...// Continue on pojoSession</pre><p>						&#35831;&#27880;&#24847;&#65292;&#29992;<tt class="literal">EntityMode</tt>&#35843;&#29992;<tt class="literal">getSession()</tt>&#26159;&#22312;						<tt class="literal">Session</tt>&#30340;API&#20013;&#65292;&#32780;&#19981;&#26159;<tt class="literal">SessionFactory</tt>&#12290;						&#36825;&#26679;&#65292;&#26032;&#30340;<tt class="literal">Session</tt>&#20849;&#20139;&#24213;&#23618;&#30340;JDBC&#36830;&#25509;&#65292;&#20107;&#21153;&#65292;&#21644;&#20854;&#20182;&#30340;&#19978;&#19979;&#25991;&#20449;						&#24687;&#12290;&#36825;&#24847;&#21619;&#30528;&#65292;&#20320;&#19981;&#38656;&#35201;&#22312;&#31532;&#20108;&#20010;<tt class="literal">Session</tt>&#20013;&#35843;&#29992;						<tt class="literal">flush()</tt>&#21644;<tt class="literal">close()</tt>&#65292;&#21516;&#26679;&#30340;&#65292;&#25226;&#20107;&#21153;&#21644;&#36830;&#25509;&#30340;&#22788;&#29702;						&#20132;&#32473;&#21407;&#26469;&#30340;&#24037;&#20316;&#21333;&#20803;&#12290;				</p><p>						&#20851;&#20110;XML&#34920;&#31034;&#33021;&#21147;&#30340;&#26356;&#22810;&#20449;&#24687;&#21487;&#20197;&#22312;<a href="xml.html" title="&#31532;&nbsp;19&nbsp;&#31456;&nbsp;XML&#26144;&#23556;">&#31532;&nbsp;19&nbsp;&#31456; <i>XML&#26144;&#23556;</i></a>&#20013;&#25214;&#21040;&#12290;				</p></div><p>    		TODO&#65306;&#22312;property&#21644;proxy&#30340;&#21253;&#37324;&#65292;&#29992;&#25143;&#25193;&#23637;&#25991;&#20214;&#26694;&#26550;&#12290;    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="session-configuration.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="mapping.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;4&nbsp;&#31456;&nbsp;        &#37197;&#32622;    &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;6&nbsp;&#31456;&nbsp;&#23545;&#35937;/&#20851;&#31995;&#25968;&#25454;&#24211;&#26144;&#23556;&#22522;&#30784;(Basic O/R Mapping)</td></tr></table></div></body></html>

⌨️ 快捷键说明

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