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

📄 transactions.html

📁 图象处理
💻 HTML
📖 第 1 页 / 共 3 页
字号:
}s.disconnect();</pre><p>	    &#25509;&#19979;&#26469;&#65306;	</p><pre class="programlisting">s.reconnect();try {    tx = s.beginTransaction();    bar.setFooTable( new HashMap() );    Iterator iter = fooList.iterator();    while ( iter.hasNext() ) {        Foo foo = (Foo) iter.next();        s.lock(foo, LockMode.READ);    //check that foo isn't stale        bar.getFooTable().put( foo.getName(), foo );    }    tx.commit();}catch (Exception e) {    if (tx!=null) tx.rollback();    throw e;}finally {    s.close();}</pre><p>	    &#20174;&#19978;&#38754;&#30340;&#20363;&#23376;&#21487;&#20197;&#30475;&#21040;<tt class="literal">Transaction</tt>&#21644;<tt class="literal">Session</tt>&#20043;&#38388;&#26159;&#22810;&#23545;&#19968;&#30340;&#20851;&#31995;&#12290;&#19968;&#20010;<tt class="literal">Session</tt>&#34920;&#31034;&#20102;&#24212;&#29992;&#31243;&#24207;&#19982;&#25968;&#25454;&#24211;&#20043;&#38388;&#30340;&#19968;&#20010;&#23545;&#35805;&#65292;<tt class="literal">Transaction</tt>&#25226;&#36825;&#20010;&#23545;&#35805;&#20998;&#38548;&#25104;&#19968;&#20010;&#20010;&#22312;&#25968;&#25454;&#24211;&#32423;&#21035;&#20855;&#26377;&#21407;&#23376;&#24615;&#30340;&#21333;&#20803;&#12290;	</p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="transactions-locking"></a>10.6.&nbsp;&#24754;&#35266;&#38145;&#23450;&#65288;Pessimistic Locking&#65289;</h2></div></div><div></div></div><p>	    &#29992;&#25143;&#19981;&#38656;&#35201;&#22312;&#38145;&#23450;&#31574;&#30053;&#19978;&#33457;&#36153;&#36807;&#22810;&#26102;&#38388;&#65292;&#36890;&#24120;&#25105;&#20204;&#21487;&#20197;&#23545;JDBC&#36830;&#25509;&#36873;&#23450;&#19968;&#31181;&#38548;&#31163;&#32423;&#21035;&#65288;isolationn level&#65289;&#65292;&#28982;&#21518;&#35753;&#25968;&#25454;&#24211;&#23436;&#25104;&#25152;&#26377;&#30340;&#24037;&#20316;&#12290;&#39640;&#32423;&#29992;&#25143;&#21487;&#33021;&#24076;&#26395;&#24471;&#21040;&#24754;&#35266;&#38145;&#23450;&#25110;&#32773;&#22312;&#26032;&#30340;&#20107;&#21153;&#24320;&#22987;&#26102;&#37325;&#26032;&#24471;&#21040;&#38145;&#12290;        </p><p>            Hibernate&#19968;&#30452;&#37117;&#20250;&#20351;&#29992;&#25968;&#25454;&#24211;&#30340;&#38145;&#23450;&#26426;&#21046;,&#32780;&#19981;&#20250;&#22312;&#20869;&#23384;&#20013;&#38145;&#23450;&#23545;&#35937;&#12290;        </p><p>	    <tt class="literal">LockMode</tt>&#31867;&#23450;&#20041;&#20102;Hibernate&#38656;&#35201;&#30340;&#19981;&#21516;&#30340;&#38145;&#32423;&#21035;&#12290;&#38145;&#30001;&#20197;&#19979;&#30340;&#26426;&#21046;&#24471;&#21040;&#65306;	</p><div class="itemizedlist"><ul type="disc" compact><li><p>		    <tt class="literal">LockMode.WRITE</tt>&#22312;Hibernate&#26356;&#26032;&#25110;&#25554;&#20837;&#19968;&#34892;&#25968;&#25454;&#26102;&#33258;&#21160;&#24471;&#21040;&#12290;		</p></li><li><p>		    <tt class="literal">LockMode.UPGRADE</tt>&#22312;&#29992;&#25143;&#36890;&#36807;<tt class="literal">SELECT ... FOR UPDATE</tt>&#36825;&#26679;&#30340;&#29305;&#23450;&#35831;&#27714;&#24471;&#21040;&#65292;&#38656;&#35201;&#25968;&#25454;&#24211;&#25903;&#25345;&#36825;&#31181;&#35821;&#27861;&#12290;		</p></li><li><p>		    <tt class="literal">LockMode.UPGRADE_NOWAIT</tt>&#22312;&#29992;&#25143;&#36890;&#36807;<tt class="literal">SELECT ... FOR UPDATE NOWAIT</tt>&#36825;&#26679;&#30340;&#29305;&#23450;&#35831;&#27714;&#22312;Oracle&#25968;&#25454;&#24211;&#29615;&#22659;&#19979;&#24471;&#21040;&#12290;		</p></li><li><p>		    <tt class="literal">LockMode.READ</tt>&#22312;Hibernate&#22312;&#19981;&#26029;&#35835;&#65288;Repeatable Read&#65289;&#21644;&#24207;&#21015;&#21270;&#65288;Serializable&#65289;&#30340;&#38548;&#31163;&#32423;&#21035;&#19979;&#35835;&#21462;&#25968;&#25454;&#26102;&#24471;&#21040;&#12290;&#20063;&#21487;&#20197;&#36890;&#36807;&#29992;&#25143;&#30340;&#26126;&#30830;&#35831;&#27714;&#37325;&#26032;&#33719;&#24471;&#12290;		</p></li><li><p>	    <tt class="literal">LockMode.NONE</tt>&#34920;&#31034;&#27809;&#26377;&#38145;&#12290;&#25152;&#26377;&#23545;&#35937;&#22312;<tt class="literal">Transaction</tt>&#32467;&#26463;&#26102;&#20250;&#20999;&#25442;&#21040;&#36825;&#31181;&#38145;&#27169;&#24335;&#65292;&#36890;&#36807;&#35843;&#29992;<tt class="literal">update()</tt>&#25110;&#32773;<tt class="literal">saveOrUpdate()</tt>&#19982;&#20250;&#35805;&#36827;&#34892;&#20851;&#32852;&#30340;&#23545;&#35937;,&#24320;&#22987;&#26102;&#20063;&#20250;&#22312;&#36825;&#31181;&#38145;&#27169;&#24335;&#12290;	</p></li></ul></div><p>	    &#8220;&#26126;&#30830;&#30340;&#29992;&#25143;&#35831;&#27714;&#8221;&#20250;&#20197;&#19979;&#30340;&#20960;&#31181;&#26041;&#24335;&#20986;&#29616;&#65306;	</p><div class="itemizedlist"><ul type="disc" compact><li><p>		    &#35843;&#29992;<tt class="literal">Session.load()</tt>&#65292;&#25351;&#23450;&#19968;&#31181;<tt class="literal">LockMode</tt>&#12290;		</p></li><li><p>		    &#35843;&#29992;<tt class="literal">Session.lock()</tt>&#12290;		</p></li><li><p>		    &#35843;&#29992;<tt class="literal">Query.setLockMode()</tt>&#12290;		</p></li></ul></div><p>	    &#22914;&#26524;&#22312;&#35843;&#29992;<tt class="literal">Session.load()</tt>&#26102;&#25351;&#23450;&#20102;<tt class="literal">UPGRADE</tt>&#25110;&#32773;<tt class="literal">UPGRADE_NOWAIT</tt>&#65292;&#24182;&#19988;&#35831;&#27714;&#30340;&#23545;&#35937;&#36824;&#27809;&#26377;&#34987;&#20250;&#35805;&#35843;&#20837;&#65292;&#37027;&#20040;&#36825;&#20010;&#23545;&#35937;&#20250;&#20197;<tt class="literal">SELECT ... FOR UPDATE</tt>&#30340;&#26041;&#24335;&#35843;&#20837;&#12290;&#22914;&#26524;&#35843;&#29992;<tt class="literal">load()</tt>&#22312;&#19968;&#20010;&#24050;&#32463;&#35843;&#20837;&#30340;&#23545;&#35937;&#65292;&#24182;&#19988;&#36825;&#20010;&#23545;&#35937;&#35843;&#20837;&#26102;&#30340;&#38145;&#32423;&#21035;&#27809;&#26377;&#35831;&#27714;&#26102;&#26469;&#24471;&#20005;&#26684;&#65292;Hibernate&#20250;&#23545;&#36825;&#20010;&#23545;&#35937;&#35843;&#29992;<tt class="literal">lock()</tt>&#12290;	</p><p>	    <tt class="literal">Session.lock()</tt>&#20250;&#25191;&#34892;&#29256;&#26412;&#21495;&#26816;&#26597;&#30340;&#29305;&#23450;&#30340;&#38145;&#27169;&#24335;&#26159;&#65306;<tt class="literal">READ</tt>&#65292;<tt class="literal">UPGRADE</tt>&#25110;&#32773;<tt class="literal">UPGRADE_NOWAIT</tt>&#12290;&#65288;&#22312;<tt class="literal">UPGRADE</tt>&#25110;&#32773;<tt class="literal">UPGRADE_NOWAIT</tt>&#65292;<tt class="literal">SELECT ... FOR UPGRADE</tt>&#20351;&#29992;&#30340;&#24773;&#20917;&#19979;&#12290;&#65289;	</p><p>	    &#22914;&#26524;&#25968;&#25454;&#24211;&#19981;&#25903;&#25345;&#25152;&#35831;&#27714;&#30340;&#38145;&#27169;&#24335;&#65292;Hibernate&#23558;&#20250;&#36873;&#25321;&#19968;&#31181;&#21512;&#36866;&#30340;&#21463;&#25903;&#25345;&#30340;&#38145;&#27169;&#24335;&#26367;&#25442;&#65288;&#32780;&#19981;&#26159;&#25243;&#20986;&#19968;&#20010;&#24322;&#24120;&#65289;&#12290;&#36825;&#30830;&#20445;&#20102;&#24212;&#29992;&#20855;&#26377;&#21487;&#31227;&#26893;&#24615;&#12290;	</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="manipulatingdata.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="queryhql.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;9&nbsp;&#31456;&nbsp;&#25805;&#20316;&#25345;&#20037;&#21270;&#25968;&#25454;(Manipulating Persistent Data)&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;Hibernate&#26597;&#35810;&#35821;&#35328;(Query Language), &#21363;HQL</td></tr></table></div></body></html>

⌨️ 快捷键说明

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