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

📄 performance.html

📁 hibernate的一点学习资料!
💻 HTML
📖 第 1 页 / 共 3 页
字号:
&lt;/class&gt;</pre><p>            &#36825;&#37324;<tt class="literal">Cat</tt>&#23454;&#29616;<tt class="literal">ICat</tt>&#25509;&#21475;&#65292;&#24182;&#19988;<tt class="literal">DomesticCat</tt>&#23454;&#29616;<tt class="literal">IDomesticCat</tt>&#25509;&#21475;&#12290;&#20110;&#26159; <tt class="literal">load()</tt>&#25110;&#32773;<tt class="literal">iterate()</tt>&#23601;&#20250;&#36820;&#22238;<tt class="literal">Cat</tt>&#21644;<tt class="literal">DomesticCat</tt>&#30340;&#23454;&#20363;&#30340;&#20195;&#29702;&#12290;(&#27880;&#24847;<tt class="literal">find()</tt>&#19981;&#20250;&#36820;&#22238;&#20195;&#29702;&#12290;)        </p><pre class="programlisting">ICat cat = (ICat) session.load(Cat.class, catid);Iterator iter = session.iterate("from cat in class eg.Cat where cat.name='fritz'");ICat fritz = (ICat) iter.next();</pre><p>            &#20851;&#31995;&#20063;&#26159;&#24310;&#36831;&#35013;&#36733;&#30340;&#12290;&#36825;&#24847;&#21619;&#30528;&#20320;&#24517;&#39035;&#25226;&#20219;&#20309;&#23646;&#24615;&#22768;&#26126;&#20026;<tt class="literal">ICat</tt>&#31867;&#22411;&#65292;&#32780;&#38750;<tt class="literal">Cat</tt>&#12290;        </p><p>            &#26576;&#20123;&#29305;&#23450;&#25805;&#20316;<span class="emphasis"><em>&#19981;</em></span>&#38656;&#35201;&#21021;&#22987;&#21270;&#20195;&#29702;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                        <tt class="literal">equals()</tt>, &#20551;&#22914;&#25345;&#20037;&#21270;&#31867;&#27809;&#26377;&#37325;&#36733;<tt class="literal">equals()</tt>                    </p></li><li><p>                        <tt class="literal">hashCode()</tt>, &#20551;&#22914;&#25345;&#20037;&#21270;&#31867;&#27809;&#26377;&#37325;&#36733;<tt class="literal">hashCode()</tt>                    </p></li><li><p>                        &#26631;&#35782;&#31526;&#30340;get&#26041;&#27861;                    </p></li></ul></div><p>            Hibernate&#20250;&#35782;&#21035;&#20986;&#37325;&#36733;&#20102;<tt class="literal">equals()</tt> &#25110;&#32773; <tt class="literal">hashCode()</tt>&#26041;&#27861;&#30340;&#25345;&#20037;&#21270;&#31867;&#12290;        </p><p>            &#22312;&#21021;&#22987;&#21270;&#20195;&#29702;&#30340;&#26102;&#20505;&#21457;&#29983;&#30340;&#24322;&#24120;&#20250;&#34987;&#21253;&#35013;&#25104;<tt class="literal">LazyInitializationException</tt>&#12290;        </p><p>        &#26377;&#26102;&#20505;&#25105;&#20204;&#38656;&#35201;&#20445;&#35777;&#22312;<tt class="literal">Session</tt>&#20851;&#38381;&#21069;&#26576;&#20010;&#20195;&#29702;&#25110;&#32773;&#38598;&#21512;&#24050;&#32463;&#34987;&#21021;&#22987;&#21270;&#20102;&#12290;&#24403;&#28982;&#65292;&#25105;&#20204;&#24635;&#26159;&#21487;&#20197;&#36890;&#36807;&#35843;&#29992;<tt class="literal">cat.getSex()</tt>&#25110;&#32773; <tt class="literal">cat.getKittens().size()</tt>&#20043;&#31867;&#30340;&#26041;&#27861;&#26469;&#30830;&#20445;&#36825;&#19968;&#28857;&#12290;&#20294;&#26159;&#36825;&#26679;&#31243;&#24207;&#21487;&#35835;&#24615;&#19981;&#20339;&#65292;&#20063;&#19981;&#31526;&#21512;&#36890;&#24120;&#30340;&#20195;&#30721;&#35268;&#33539;&#12290;&#38745;&#24577;&#26041;&#27861;<tt class="literal">Hibernate.initialize()</tt>&#21644;<tt class="literal">Hibernate.isInitialized()</tt>&#32473;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#19968;&#20010;&#27491;&#24120;&#30340;&#36884;&#24452;&#26469;&#21152;&#36733;&#38598;&#21512;&#25110;&#20195;&#29702;&#12290;<tt class="literal">Hibernate.initialize(cat)</tt> &#20250;&#24378;&#21046;&#21021;&#22987;&#21270;&#19968;&#20010;&#20195;&#29702;,<tt class="literal">cat</tt>,&#21482;&#35201;&#23427;&#30340;<tt class="literal">Session</tt>&#20173;&#28982;&#25171;&#24320;&#12290;<tt class="literal">Hibernate.initialize( cat.getKittens() )</tt>&#23545;kittens&#30340;&#38598;&#21512;&#20855;&#26377;&#21516;&#26679;&#30340;&#21151;&#33021;&#12290;        </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="performance-s3"></a>12.2.&nbsp;&#31532;&#20108;&#23618;&#32531;&#23384;(The Second Level Cache)s</h2></div></div><div></div></div><p>            Hibernate<tt class="literal">Session</tt>&#26159;&#20107;&#21153;&#32423;&#21035;&#30340;&#25345;&#20037;&#21270;&#25968;&#25454;&#32531;&#23384;&#12290;&#20877;&#20026;&#27599;&#20010;&#31867;&#25110;&#32773;&#27599;&#20010;&#38598;&#21512;&#37197;&#32622;&#19968;&#20010;&#38598;&#32676;&#25110;&#32773;JVM&#32423;&#21035;(<tt class="literal">SessionFactory</tt>&#32423;&#21035;)&#30340;&#32531;&#23384;&#20063;&#26159;&#26377;&#21487;&#33021;&#30340;&#12290;&#20320;&#29978;&#33267;&#21487;&#20197;&#25554;&#20837;&#19968;&#20010;&#38598;&#32676;&#30340;&#32531;&#23384;&#12290;&#35201;&#23567;&#24515;&#65292;&#32531;&#23384;&#27704;&#36828;&#19981;&#20250;&#30693;&#36947;&#20854;&#20182;&#36827;&#31243;&#21487;&#33021;&#23545;&#25345;&#20037;&#21270;&#20179;&#24211;&#65288;&#25968;&#25454;&#24211;&#65289;&#36827;&#34892;&#30340;&#20462;&#25913;&#65288;&#21363;&#20351;&#20182;&#20204;&#21487;&#33021;&#35774;&#23450;&#20026;&#32463;&#24120;&#23545;&#32531;&#23384;&#30340;&#25968;&#25454;&#36827;&#34892;&#22833;&#25928;&#65289;&#12290;        </p><p>            &#40664;&#35748;&#24773;&#20917;&#19979;&#65292;Hibernate&#20351;&#29992;EHCache&#36827;&#34892;JVM&#32423;&#21035;&#30340;&#32531;&#23384;&#12290;&#20294;&#26159;&#65292;&#23545;JCS&#30340;&#25903;&#25345;&#29616;&#22312;&#24050;&#32463;&#34987;&#24223;&#24323;&#20102;&#65292;&#26410;&#26469;&#29256;&#26412;&#30340;Hibernate&#23558;&#20250;&#21435;&#25481;&#23427;&#12290;&#36890;&#36807;<tt class="literal">hibernate.cache.provider_class</tt>&#23646;&#24615;&#65292;&#20320;&#20063;&#21487;&#20197;&#25351;&#23450;&#20854;&#20182;&#32531;&#23384;&#65292;&#21482;&#35201;&#20854;&#23454;&#29616;&#20102;<tt class="literal">net.sf.hibernate.cache.CacheProvider</tt>&#25509;&#21475;&#12290;         </p><div class="table"><a name="d0e7787"></a><p class="title"><b>Table&nbsp;12.1.&nbsp;Cache Providers</b></p><table summary="Cache Providers" border="1"><colgroup><col align="left"><col align="left"><col align="left"><col align="left"><col align="left"></colgroup><thead><tr><th align="left">Cache</th><th align="left">Provider class</th><th align="left">Type</th><th align="left">Cluster Safe</th><th align="left">Query Cache Supported</th></tr></thead><tbody><tr><td align="left">Hashtable (not intended for production use)</td><td align="left"><tt class="literal">net.sf.hibernate.cache.HashtableCacheProvider</tt></td><td align="left">memory</td><td align="left">&nbsp;</td><td align="left">yes</td></tr><tr><td align="left">EHCache</td><td align="left"><tt class="literal">net.sf.ehcache.hibernate.Provider</tt></td><td align="left">memory, disk</td><td align="left">&nbsp;</td><td align="left">yes</td></tr><tr><td align="left">OSCache</td><td align="left"><tt class="literal">net.sf.hibernate.cache.OSCacheProvider</tt></td><td align="left">memory, disk</td><td align="left">&nbsp;</td><td align="left">yes</td></tr><tr><td align="left">SwarmCache</td><td align="left"><tt class="literal">net.sf.hibernate.cache.SwarmCacheProvider</tt></td><td align="left">clustered (ip multicast)</td><td align="left">yes (clustered invalidation)</td><td align="left">&nbsp;</td></tr><tr><td align="left">JBoss TreeCache</td><td align="left"><tt class="literal">net.sf.hibernate.cache.TreeCacheProvider</tt></td><td align="left">clustered (ip multicast), transactional</td><td align="left">yes (replication)</td><td align="left">&nbsp;</td></tr></tbody></table></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="performance-s3-1"></a>12.2.1.&nbsp;&#26144;&#23556;(Mapping)</h3></div></div><div></div></div><p>                &#31867;&#25110;&#32773;&#38598;&#21512;&#26144;&#23556;&#30340;<tt class="literal">&lt;cache&gt;</tt>&#20803;&#32032;&#21487;&#33021;&#26377;&#19979;&#21015;&#24418;&#24335;&#65306;            </p><div class="programlistingco"><pre class="programlisting">&lt;cache                                                      <span class="co"><img src="../images/callouts/1.png" alt="(1)"></span>                usage="transactional|read-write|nonstrict-read-write|read-only" /&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">usage</tt> &#25351;&#23450;&#20102;&#32531;&#23384;&#31574;&#30053;&#65306;                            <tt class="literal">transactional</tt>,                            <tt class="literal">read-write</tt>,                            <tt class="literal">nonstrict-read-write</tt> &#25110;&#32773;                            <tt class="literal">read-only</tt>                        </p></td></tr></table></div></div><p>                &#21478;&#22806; (&#25512;&#33616;&#39318;&#36873;?), &#20320;&#21487;&#20197;&#22312;<tt class="literal">hibernate.cfg.xml</tt>&#20013;&#25351;&#23450;<tt class="literal">&lt;class-cache&gt;</tt> &#21644; <tt class="literal">&lt;collection-cache&gt;</tt> &#20803;&#32032;&#12290;            </p><p>                <tt class="literal">usage</tt>&#23646;&#24615;&#25351;&#26126;&#20102;<span class="emphasis"><em>&#32531;&#23384;&#24182;&#21457;&#31574;&#30053;&#65288;cache concurrency strategy&#65289;</em></span>&#12290;            </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="performance-s3-2"></a>12.2.2.&nbsp;&#21482;&#35835;&#32531;&#23384;</h3></div></div><div></div></div><p>                &#22914;&#26524;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#38656;&#35201;&#35835;&#21462;&#19968;&#20010;&#25345;&#20037;&#21270;&#31867;&#30340;&#23454;&#20363;&#65292;&#20294;&#26159;&#24182;&#19981;&#25171;&#31639;&#20462;&#25913;&#23427;&#20204;&#65292;&#21487;&#20197;&#20351;&#29992;<tt class="literal">read-only</tt> &#32531;&#23384;&#12290;&#36825;&#26159;&#26368;&#31616;&#21333;&#65292;&#20063;&#26159;&#23454;&#29992;&#24615;&#26368;&#22909;&#30340;&#31574;&#30053;&#12290;&#29978;&#33267;&#22312;&#38598;&#32676;&#20013;&#65292;&#23427;&#20063;&#33021;&#23436;&#32654;&#22320;&#36816;&#20316;&#12290;            </p><pre class="programlisting">&lt;class name="eg.Immutable" mutable="false"&gt;    ....    &lt;jcs-cache usage="read-only"/&gt;&lt;/class&gt;</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="performance-s3-3"></a>12.2.3.&nbsp;&#35835;/&#20889;&#32531;&#23384;</h3></div></div><div></div></div><p>                &#22914;&#26524;&#24212;&#29992;&#31243;&#24207;&#38656;&#35201;&#26356;&#26032;&#25968;&#25454;&#65292;&#21487;&#33021;<tt class="literal">read-write</tt>&#32531;&#23384;&#27604;&#36739;&#21512;&#36866;&#12290;&#22914;&#26524;&#38656;&#35201;&#21487;&#24207;&#21015;&#21270;&#20107;&#21153;&#38548;&#31163;&#32423;&#21035;&#65288;serializable transaction isolation level&#65289;&#65292;&#36825;&#31181;&#32531;&#23384;&#20915;&#19981;&#33021;&#20351;&#29992;&#12290;&#22914;&#26524;&#22312;JTA&#29615;&#22659;&#20013;&#20351;&#29992;&#36825;&#31181;&#32531;&#23384;&#65292;&#20320;&#24517;&#39035;&#25351;&#23450;<tt class="literal">hibernate.transaction.manager_lookup_class</tt>&#23646;&#24615;&#30340;&#20540;&#65292;&#32473;&#20986;&#24471;&#21040;JTA <tt class="literal">TransactionManager</tt>&#30340;&#31574;&#30053;&#12290;&#22312;&#20854;&#23427;&#29615;&#22659;&#20013;&#65292;&#20320;&#24517;&#39035;&#30830;&#20445;&#22312;<tt class="literal">Session.close()</tt>&#25110;&#32773;<tt class="literal">Session.disconnect()</tt>&#35843;&#29992;&#21069;&#65292;&#20107;&#21153;&#24050;&#32463;&#32467;&#26463;&#20102;&#12290;

⌨️ 快捷键说明

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