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

📄 transactions.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 5 页
字号:
                &#30001;Hibernate&#26469;&#31649;&#29702;&#12290;            </p><p>                &#23545;<tt class="literal">after_statement</tt>&#36830;&#25509;&#37322;&#25918;&#26041;&#24335;&#26377;&#19968;&#20010;&#35686;&#21578;&#12290;&#22240;&#20026;JTA&#35268;&#33539;&#30340;&#19968;&#20010;&#24456;&#24858;&#34850;&#30340;&#38480;&#21046;&#65292;Hibernate&#19981;&#21487;&#33021;&#33258;&#21160;&#28165;&#29702;&#20219;&#20309;&#26410;&#20851;&#38381;&#30340;<tt class="literal">ScrollableResults</tt> &#25110;&#32773;<tt class="literal">Iterator</tt>&#65292;&#23427;&#20204;&#26159;&#30001;<tt class="literal">scroll()</tt>&#25110;<tt class="literal">iterate()</tt>&#20135;&#29983;&#30340;&#12290;&#20320;<span class="emphasis"><em>must</em></span>&#36890;&#36807;&#22312;<tt class="literal">finally</tt>&#22359;&#20013;&#65292;&#26174;&#24335;&#35843;&#29992;<tt class="literal">ScrollableResults.close()</tt>&#25110;&#32773;<tt class="literal">Hibernate.close(Iterator)</tt>&#26041;&#27861;&#26469;&#37322;&#25918;&#24213;&#23618;&#25968;&#25454;&#24211;&#28216;&#26631;&#12290;(&#24403;&#28982;&#65292;&#22823;&#37096;&#20998;&#31243;&#24207;&#23436;&#20840;&#21487;&#20197;&#24456;&#23481;&#26131;&#30340;&#36991;&#20813;&#22312;CMT&#20195;&#30721;&#20013;&#20986;&#29616;<tt class="literal">scroll()</tt>&#25110;<tt class="literal">iterate()</tt>&#12290;)            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="transactions-demarcation-exceptions"></a>12.2.3.&nbsp;&#24322;&#24120;&#22788;&#29702;</h3></div></div><div></div></div><p>                &#22914;&#26524; <tt class="literal">Session</tt> &#25243;&#20986;&#24322;&#24120; (&#21253;&#25324;&#20219;&#20309;<tt class="literal">SQLException</tt>),                 &#20320;&#24212;&#35813;&#31435;&#21363;&#22238;&#28378;&#25968;&#25454;&#24211;&#20107;&#21153;&#65292;&#35843;&#29992; <tt class="literal">Session.close()</tt> &#65292;&#20002;&#24323;&#35813;                <tt class="literal">Session</tt>&#23454;&#20363;&#12290;<tt class="literal">Session</tt>&#30340;&#26576;&#20123;&#26041;&#27861;&#21487;&#33021;&#20250;&#23548;&#33268;session                &#22788;&#20110;&#19981;&#19968;&#33268;&#30340;&#29366;&#24577;&#12290;&#25152;&#26377;&#30001;Hibernate&#25243;&#20986;&#30340;&#24322;&#24120;&#37117;&#35270;&#20026;&#19981;&#21487;&#20197;&#24674;&#22797;&#30340;&#12290;&#30830;&#20445;&#22312;                <tt class="literal">finally</tt> &#20195;&#30721;&#22359;&#20013;&#35843;&#29992;<tt class="literal">close()</tt>&#26041;&#27861;&#65292;&#20197;&#20851;&#38381;&#25481;                <tt class="literal">Session</tt>&#12290;            </p><p>								<tt class="literal">HibernateException</tt>&#26159;&#19968;&#20010;&#38750;&#26816;&#26597;&#26399;&#24322;&#24120;&#65288;&#36825;&#19981;&#21516;&#20110;Hibernate&#32769;&#30340;&#29256;&#26412;&#65289;&#65292;								&#23427;&#23553;&#35013;&#20102;Hibernate&#25345;&#20037;&#23618;&#21487;&#33021;&#20986;&#29616;&#30340;&#22823;&#22810;&#25968;&#38169;&#35823;&#12290;&#25105;&#20204;&#30340;&#35266;&#28857;&#26159;&#65292;&#19981;&#24212;&#35813;&#24378;&#36843;&#24212;&#29992;&#31243;&#24207;&#24320;&#21457;&#20154;&#21592;								&#22312;&#24213;&#23618;&#25429;&#33719;&#26080;&#27861;&#24674;&#22797;&#30340;&#24322;&#24120;&#12290;&#22312;&#22823;&#22810;&#25968;&#36719;&#20214;&#31995;&#32479;&#20013;&#65292;&#38750;&#26816;&#26597;&#26399;&#24322;&#24120;&#21644;&#33268;&#21629;&#24322;&#24120;&#37117;&#26159;&#22312;&#30456;&#24212;&#26041;&#27861;&#35843;&#29992;								&#30340;&#22534;&#26632;&#30340;&#39030;&#23618;&#34987;&#22788;&#29702;&#30340;&#65288;&#20063;&#23601;&#26159;&#35828;&#65292;&#22312;&#36719;&#20214;&#19978;&#38754;&#30340;&#36923;&#36753;&#23618;&#65289;&#65292;&#24182;&#19988;&#25552;&#20379;&#19968;&#20010;&#38169;&#35823;&#20449;&#24687;&#32473;&#24212;&#29992;&#36719;&#20214;&#30340;&#29992;&#25143;								&#65288;&#25110;&#32773;&#37319;&#21462;&#20854;&#20182;&#26576;&#20123;&#30456;&#24212;&#30340;&#25805;&#20316;&#65289;&#12290;&#35831;&#27880;&#24847;&#65292;Hibernate&#20063;&#26377;&#21487;&#33021;&#25243;&#20986;&#20854;&#20182;&#24182;&#19981;&#23646;&#20110;								<tt class="literal">HibernateException</tt>&#30340;&#38750;&#26816;&#26597;&#26399;&#24322;&#24120;&#12290;&#36825;&#20123;&#24322;&#24120;&#21516;&#26679;&#20063;&#26159;&#26080;&#27861;&#24674;&#22797;&#30340;&#65292;&#24212;&#35813;								&#37319;&#21462;&#26576;&#20123;&#30456;&#24212;&#30340;&#25805;&#20316;&#21435;&#22788;&#29702;&#12290;            </p><p>								&#22312;&#21644;&#25968;&#25454;&#24211;&#36827;&#34892;&#20132;&#20114;&#26102;&#65292;Hibernate&#25226;&#25429;&#33719;&#30340;<tt class="literal">SQLException</tt>&#23553;&#35013;&#20026;Hibernate&#30340;								<tt class="literal">JDBCException</tt>&#12290;&#20107;&#23454;&#19978;&#65292;Hibernate&#23581;&#35797;&#25226;&#24322;&#24120;&#36716;&#25442;&#20026;&#26356;&#26377;&#23454;&#38469;&#21547;&#20041;								&#30340;<tt class="literal">JDBCException</tt>&#24322;&#24120;&#30340;&#23376;&#31867;&#12290;&#24213;&#23618;&#30340;<tt class="literal">SQLException</tt>&#21487;&#20197;								&#36890;&#36807;<tt class="literal">JDBCException.getCause()</tt>&#26469;&#24471;&#21040;&#12290;Hibernate&#36890;&#36807;&#20351;&#29992;&#20851;&#32852;&#21040;								<tt class="literal">SessionFactory</tt>&#19978;&#30340;<tt class="literal">SQLExceptionConverter</tt>&#26469;								&#25226;<tt class="literal">SQLException</tt>&#36716;&#25442;&#20026;&#19968;&#20010;&#23545;&#24212;&#30340;<tt class="literal">JDBCException</tt>								&#24322;&#24120;&#30340;&#23376;&#31867;&#12290;&#40664;&#35748;&#24773;&#20917;&#19979;&#65292;<tt class="literal">SQLExceptionConverter</tt>&#21487;&#20197;&#36890;&#36807;&#37197;&#32622;dialect								&#36873;&#39033;&#25351;&#23450;&#65307;&#27492;&#22806;&#65292;&#20063;&#21487;&#20197;&#20351;&#29992;&#29992;&#25143;&#33258;&#23450;&#20041;&#30340;&#23454;&#29616;&#31867;&#65288;&#21442;&#32771;javadocs								 <tt class="literal">SQLExceptionConverterFactory</tt>&#31867;&#26469;&#20102;&#35299;&#35814;&#24773;&#65289;&#12290;&#26631;&#20934;&#30340;								 <tt class="literal">JDBCException</tt>&#23376;&#31867;&#22411;&#26159;&#65306;            </p><div class="itemizedlist"><ul type="disc" compact><li><p>                        <tt class="literal">JDBCConnectionException</tt> - &#25351;&#26126;&#24213;&#23618;&#30340;JDBC&#36890;&#35759;&#20986;&#29616;&#38169;&#35823;                    </p></li><li><p>                        <tt class="literal">SQLGrammarException</tt> - &#25351;&#26126;&#21457;&#36865;&#30340;SQL&#35821;&#21477;&#30340;&#35821;&#27861;&#25110;&#32773;&#26684;&#24335;&#38169;&#35823;                    </p></li><li><p>                        <tt class="literal">ConstraintViolationException</tt> - &#25351;&#26126;&#26576;&#31181;&#31867;&#22411;&#30340;&#32422;&#26463;&#36829;&#20363;&#38169;&#35823;                    </p></li><li><p>                        <tt class="literal">LockAcquisitionException</tt> - &#25351;&#26126;&#20102;&#22312;&#25191;&#34892;&#35831;&#27714;&#25805;&#20316;&#26102;&#65292;&#33719;&#21462;                        &#25152;&#38656;&#30340;&#38145;&#32423;&#21035;&#26102;&#20986;&#29616;&#30340;&#38169;&#35823;&#12290;                                            </p></li><li><p>                        <tt class="literal">GenericJDBCException</tt> - &#19981;&#23646;&#20110;&#20219;&#20309;&#20854;&#20182;&#31181;&#31867;&#30340;&#21407;&#29983;&#24322;&#24120;                    </p></li></ul></div></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="transactions-optimistic"></a>12.3.&nbsp;&#20048;&#35266;&#24182;&#21457;&#25511;&#21046;(Optimistic concurrency control)</h2></div></div><div></div></div><p>            &#21807;&#19968;&#33021;&#22815;&#21516;&#26102;&#20445;&#25345;&#39640;&#24182;&#21457;&#21644;&#39640;&#21487;&#20280;&#32553;&#24615;&#30340;&#26041;&#27861;&#23601;&#26159;&#20351;&#29992;&#24102;&#29256;&#26412;&#21270;&#30340;&#20048;&#35266;&#24182;&#21457;&#25511;&#21046;&#12290;&#29256;&#26412;&#26816;&#26597;&#20351;&#29992;&#29256;&#26412;&#21495;&#12289;            &#25110;&#32773;&#26102;&#38388;&#25139;&#26469;&#26816;&#27979;&#26356;&#26032;&#20914;&#31361;&#65288;&#24182;&#19988;&#38450;&#27490;&#26356;&#26032;&#20002;&#22833;&#65289;&#12290;Hibernate&#20026;&#20351;&#29992;&#20048;&#35266;&#24182;&#21457;&#25511;&#21046;&#30340;&#20195;&#30721;&#25552;&#20379;&#20102;&#19977;&#31181;&#21487;            &#33021;&#30340;&#26041;&#27861;&#65292;&#24212;&#29992;&#31243;&#24207;&#22312;&#32534;&#20889;&#36825;&#20123;&#20195;&#30721;&#26102;&#65292;&#21487;&#20197;&#37319;&#29992;&#23427;&#20204;&#12290;&#25105;&#20204;&#24050;&#32463;&#22312;&#21069;&#38754;&#24212;&#29992;&#31243;&#24207;&#38271;&#20107;&#21153;&#37027;&#37096;&#20998;&#23637;&#31034;&#20102;            &#20048;&#35266;&#24182;&#21457;&#25511;&#21046;&#30340;&#24212;&#29992;&#22330;&#26223;&#65292;&#27492;&#22806;&#65292;&#22312;&#21333;&#20010;&#25968;&#25454;&#24211;&#20107;&#21153;&#33539;&#22260;&#20869;&#65292;&#29256;&#26412;&#26816;&#26597;&#20063;&#25552;&#20379;&#20102;&#38450;&#27490;&#26356;&#26032;&#20002;&#22833;&#30340;&#22909;&#22788;&#12290;        </p><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="transactions-optimistic-manual"></a>12.3.1.&nbsp;&#24212;&#29992;&#31243;&#24207;&#32423;&#21035;&#30340;&#29256;&#26412;&#26816;&#26597;(Application version checking)</h3></div></div><div></div></div><p>                								 &#26410;&#33021;&#20805;&#20998;&#21033;&#29992;Hibernate&#21151;&#33021;&#30340;&#23454;&#29616;&#20195;&#30721;&#20013;&#65292;&#27599;&#27425;&#21644;&#25968;&#25454;&#24211;&#20132;&#20114;&#37117;&#38656;&#35201;&#19968;&#20010;&#26032;&#30340;								 <tt class="literal">Session</tt>&#65292;&#32780;&#19988;&#24320;&#21457;&#20154;&#21592;&#24517;&#39035;&#22312;&#26174;&#31034;&#25968;&#25454;&#20043;&#21069;&#20174;&#25968;&#25454;&#24211;&#20013;&#37325;								 &#26032;&#36733;&#20837;&#25152;&#26377;&#30340;&#25345;&#20037;&#21270;&#23545;&#35937;&#23454;&#20363;&#12290;&#36825;&#31181;&#26041;&#24335;&#36843;&#20351;&#24212;&#29992;&#31243;&#24207;&#33258;&#24049;&#23454;&#29616;&#29256;&#26412;&#26816;&#26597;&#26469;&#30830;&#20445;								 &#24212;&#29992;&#31243;&#24207;&#20107;&#21153;&#30340;&#38548;&#31163;&#65292;&#20174;&#25968;&#25454;&#35775;&#38382;&#30340;&#35282;&#24230;&#26469;&#35828;&#26159;&#26368;&#20302;&#25928;&#30340;&#12290;&#36825;&#31181;&#20351;&#29992;&#26041;&#24335;&#21644;								 entity EJB&#26368;&#30456;&#20284;&#12290;            </p><pre class="programlisting">// foo is an instance loaded by a previous Sessionsession = factory.openSession();Transaction t = session.beginTransaction();int oldVersion = foo.getVersion();session.load( foo, foo.getKey() ); // load the current stateif ( oldVersion!=foo.getVersion ) throw new StaleObjectStateException();foo.setProperty("bar");t.commit();session.close();</pre><p>                <tt class="literal">version</tt> &#23646;&#24615;&#20351;&#29992; <tt class="literal">&lt;version&gt;</tt>&#26469;&#26144;&#23556;&#65292;&#22914;&#26524;&#23545;&#35937;                &#26159;&#33039;&#25968;&#25454;&#65292;&#22312;&#21516;&#27493;&#30340;&#26102;&#20505;&#65292;Hibernate&#20250;&#33258;&#21160;&#22686;&#21152;&#29256;&#26412;&#21495;&#12290;            </p><p>								&#24403;&#28982;&#65292;&#22914;&#26524;&#20320;&#30340;&#24212;&#29992;&#26159;&#22312;&#19968;&#20010;&#20302;&#25968;&#25454;&#24182;&#21457;&#29615;&#22659;&#19979;&#65292;&#24182;&#19981;&#38656;&#35201;&#29256;&#26412;&#26816;&#26597;&#30340;&#35805;&#65292;&#20320;&#29031;&#26679;&#21487;&#20197;&#20351;&#29992;								&#36825;&#31181;&#26041;&#24335;&#65292;&#21482;&#19981;&#36807;&#36339;&#36807;&#29256;&#26412;&#26816;&#26597;&#23601;&#26159;&#20102;&#12290;&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;<span class="emphasis"><em>&#26368;&#26202;&#25552;&#20132;&#29983;&#25928;</em></span>								&#65288;<span class="emphasis"><em>last commit wins</em></span>&#65289;&#23601;&#26159;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#38271;&#20107;&#21153;&#30340;&#40664;&#35748;&#22788;&#29702;&#31574;&#30053;&#12290;								&#35831;&#35760;&#20303;&#36825;&#31181;&#31574;&#30053;&#21487;&#33021;&#20250;&#35753;&#24212;&#29992;&#36719;&#20214;&#30340;&#29992;&#25143;&#24863;&#21040;&#22256;&#24785;&#65292;&#22240;&#20026;&#20182;&#20204;&#26377;&#21487;&#33021;&#20250;&#30896;&#19978;&#26356;&#26032;&#20002;&#22833;&#25481;&#21364;&#27809;								&#26377;&#20986;&#38169;&#20449;&#24687;&#65292;&#25110;&#32773;&#38656;&#35201;&#21512;&#24182;&#26356;&#25913;&#20914;&#31361;&#30340;&#24773;&#20917;&#12290;            </p><p>                &#24456;&#26126;&#26174;&#65292;&#25163;&#24037;&#36827;&#34892;&#29256;&#26412;&#26816;&#26597;&#21482;&#36866;&#21512;&#20110;&#26576;&#20123;&#36719;&#20214;&#35268;&#27169;&#38750;&#24120;&#23567;&#30340;&#24212;&#29992;&#22330;&#26223;&#65292;&#23545;&#20110;&#22823;&#22810;&#25968;&#36719;&#20

⌨️ 快捷键说明

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