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

📄 transactions.html

📁 hibernate的中文教程,html形式,方便了初学者可以任意copy代码,完成知识点的学习
💻 HTML
📖 第 1 页 / 共 5 页
字号:
            </p><p>                &#27880;&#24847;&#65292;&#24403;&#20320;&#37197;&#32622;Hibernate&#30340;transaction factory&#30340;&#26102;&#20505;&#65292;&#22312;&#30452;&#25509;&#20351;&#29992;JTA&#30340;&#26102;&#20505;&#65288;BMT&#65289;&#65292;&#20320;&#24212;&#35813;&#36873;&#25321;<tt class="literal">org.hibernate.transaction.JTATransactionFactory</tt>,&#22312;CMT session bean&#20013;&#36873;&#25321;<tt class="literal">org.hibernate.transaction.CMTTransactionFactory</tt>&#12290;&#35760;&#24471;&#20063;&#35201;&#35774;&#32622;<tt class="literal">hibernate.transaction.manager_lookup_class</tt>&#12290;&#36824;&#26377;&#65292;&#30830;&#35748;&#20320;&#30340;<tt class="literal">hibernate.current_session_context_class</tt>&#26410;&#35774;&#32622;&#65288;&#20026;&#20102;&#21521;&#19979;&#20860;&#23481;&#65289;&#65292;&#25110;&#32773;&#35774;&#32622;&#20026;<tt class="literal">"jta"</tt>&#12290;            </p><p>                <tt class="literal">getCurrentSession()</tt>&#22312;JTA&#29615;&#22659;&#20013;&#26377;&#19968;&#20010;&#24330;&#31471;&#12290;&#23545;<tt class="literal">after_statement</tt>&#36830;&#25509;&#37322;&#25918;&#26041;&#24335;&#26377;&#19968;&#20010;&#35686;&#21578;&#65292;&#36825;&#26159;&#34987;&#40664;&#35748;&#20351;&#29992;&#30340;&#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;JTA&#25110;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>11.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 class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="transactions-demarcation-timeout"></a>11.2.4.&nbsp;&#20107;&#21153;&#36229;&#26102;</h3></div></div><div></div></div><p>                EJB&#36825;&#26679;&#30340;&#25176;&#31649;&#29615;&#22659;&#26377;&#19968;&#39033;&#26497;&#20026;&#37325;&#35201;&#30340;&#29305;&#24615;&#65292;&#32780;&#23427;&#20174;&#26410;&#22312;&#38750;&#25176;&#31649;&#29615;&#22659;&#20013;&#25552;&#20379;&#36807;&#65292;&#37027;&#23601;&#26159;&#20107;&#21153;&#36229;&#26102;&#12290;&#22312;&#20986;&#29616;&#38169;&#35823;&#30340;&#20107;&#21153;&#34892;&#20026;&#30340;&#26102;&#20505;&#65292;&#36229;&#26102;&#21487;&#20197;&#30830;&#20445;&#19981;&#20250;&#26080;&#38480;&#25346;&#36215;&#36164;&#28304;&#12289;&#23545;&#29992;&#25143;&#27809;&#26377;&#20132;&#20195;&#12290;&#22312;&#25176;&#31649;(JTA)&#29615;&#22659;&#20043;&#22806;&#65292;Hibernate&#26080;&#27861;&#23436;&#20840;&#25552;&#20379;&#36825;&#19968;&#21151;&#33021;&#12290;&#20294;&#26159;&#65292;Hiberante&#33267;&#23569;&#21487;&#20197;&#25511;&#21046;&#25968;&#25454;&#35775;&#38382;&#65292;&#30830;&#20445;&#25968;&#25454;&#24211;&#32423;&#21035;&#30340;&#27515;&#38145;&#65292;&#21644;&#36820;&#22238;&#24040;&#22823;&#32467;&#26524;&#38598;&#30340;&#26597;&#35810;&#34987;&#38480;&#23450;&#22312;&#19968;&#20010;&#35268;&#23450;&#30340;&#26102;&#38388;&#20869;&#12290;&#22312;&#25176;&#31649;&#29615;&#22659;&#20013;&#65292;Hibernate&#20250;&#25226;&#20107;&#21153;&#36229;&#26102;&#36716;&#20132;&#32473;JTA&#12290;&#36825;&#19968;&#21151;&#33021;&#36890;&#36807;Hibernate <tt class="literal">Transaction</tt>&#23545;&#35937;&#36827;&#34892;&#25277;&#35937;&#12290;            </p><pre class="programlisting">Session sess = factory.openSession();try {    //set transaction timeout to 3 seconds    sess.getTransaction().setTimeout(3);    sess.getTransaction().begin();    // do some work    ...    sess.getTransaction().commit()}catch (RuntimeException e) {    sess.getTransaction().rollback();    throw e; // or display error message}finally {    sess.close();}</pre><p>                &#27880;&#24847;<tt class="literal">setTimeout()</tt>&#19981;&#24212;&#35813;&#22312;CMT bean&#20013;&#35843;&#29992;&#65292;&#27492;&#26102;&#20107;&#21153;&#36229;&#26102;&#20540;&#24212;&#35813;&#26159;&#34987;&#22768;&#26126;&#24335;&#23450;&#20041;&#30340;&#12290;            </p></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="transactions-optimistic"></a>11.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;&#

⌨️ 快捷键说明

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