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

📄 transactions.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 5 页
字号:
            </p><p>                &#35843;&#29992; <tt class="literal">close()</tt> &#26631;&#24535;session&#30340;&#32467;&#26463;&#12290;                <tt class="literal">close()</tt>&#26041;&#27861;&#37325;&#35201;&#30340;&#26263;&#31034;&#26159;&#65292;<tt class="literal">session</tt>&#37322;&#25918;&#20102;JDBC&#36830;&#25509;&#12290;            </p><p>                &#36825;&#27573;Java&#20195;&#30721;&#26159;&#21487;&#31227;&#26893;&#30340;&#65292;&#21487;&#20197;&#22312;&#38750;&#25176;&#31649;&#29615;&#22659;&#21644;JTA&#29615;&#22659;&#20013;&#36816;&#34892;&#12290;            </p><p>                &#20320;&#24456;&#21487;&#33021;&#20174;&#26410;&#22312;&#19968;&#20010;&#26631;&#20934;&#30340;&#24212;&#29992;&#31243;&#24207;&#30340;&#19994;&#21153;&#20195;&#30721;&#20013;&#35265;&#36807;&#36825;&#26679;&#30340;&#29992;&#27861;&#65307;&#33268;&#21629;&#30340;&#65288;&#31995;&#32479;&#65289;&#24322;&#24120;&#24212;&#35813;&#24635;&#26159;                &#22312;&#24212;&#29992;&#31243;&#24207;&#8220;&#39030;&#23618;&#8221;&#34987;&#25429;&#33719;&#12290;&#25442;&#21477;&#35805;&#35828;&#65292;&#25191;&#34892;Hibernate&#35843;&#29992;&#30340;&#20195;&#30721;&#65288;&#22312;&#25345;&#20037;&#23618;&#65289;&#21644;&#22788;&#29702;                <tt class="literal">RuntimeException</tt>&#24322;&#24120;&#30340;&#20195;&#30721;&#65288;&#36890;&#24120;&#21482;&#33021;&#28165;&#29702;&#21644;&#36864;&#20986;&#24212;&#29992;&#31243;&#24207;&#65289;&#24212;&#35813;&#22312;&#19981;&#21516;                &#30340;&#24212;&#29992;&#31243;&#24207;&#36923;&#36753;&#23618;&#12290;&#36825;&#23545;&#20110;&#20320;&#35774;&#35745;&#33258;&#24049;&#30340;&#36719;&#20214;&#31995;&#32479;&#26469;&#35828;&#26159;&#19968;&#20010;&#25361;&#25112;&#65292;&#21482;&#35201;&#26377;&#21487;&#33021;&#65292;&#20320;&#23601;&#24212;&#35813;&#20351;&#29992;                J2EE/EJB&#23481;&#22120;&#26381;&#21153;&#12290;&#24322;&#24120;&#22788;&#29702;&#23558;&#22312;&#26412;&#31456;&#31245;&#21518;&#36827;&#34892;&#35752;&#35770;&#12290;            </p><p>                &#35831;&#27880;&#24847;&#65292;&#20320;&#24212;&#35813;&#36873;&#25321; <tt class="literal">org.hibernate.transaction.JDBCTransactionFactory</tt>                (&#36825;&#26159;&#40664;&#35748;&#36873;&#39033;).            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="transactions-demarcation-jta"></a>12.2.2.&nbsp;&#20351;&#29992;JTA</h3></div></div><div></div></div><p>               	&#22914;&#26524;&#20320;&#30340;&#25345;&#20037;&#23618;&#36816;&#34892;&#22312;&#19968;&#20010;&#24212;&#29992;&#26381;&#21153;&#22120;&#20013;&#65288;&#20363;&#22914;&#65292;&#22312;EJB session beans&#30340;&#21518;&#38754;&#65289;&#65292;Hibernate&#33719;&#21462;               	&#30340;&#27599;&#20010;&#25968;&#25454;&#28304;&#36830;&#25509;&#23558;&#33258;&#21160;&#25104;&#20026;&#20840;&#23616;JTA&#20107;&#21153;&#30340;&#19968;&#37096;&#20998;&#12290;Hibernate&#25552;&#20379;&#20102;&#20004;&#31181;&#31574;&#30053;&#36827;&#34892;JTA&#38598;&#25104;&#12290;            </p><p>                &#22914;&#26524;&#20320;&#20351;&#29992;bean&#31649;&#29702;&#20107;&#21153;&#65288;BMT&#65289;&#65292;&#21487;&#20197;&#36890;&#36807;&#20351;&#29992;Hibernate&#30340; <tt class="literal">Transaction</tt> API&#26469;&#21578;&#35785;                &#24212;&#29992;&#26381;&#21153;&#22120;&#21551;&#21160;&#21644;&#32467;&#26463;BMT&#20107;&#21153;&#12290;&#22240;&#27492;&#65292;&#20107;&#21153;&#31649;&#29702;&#20195;&#30721;&#21644;&#22312;&#38750;&#25176;&#31649;&#29615;&#22659;&#19979;&#26159;&#19968;&#26679;&#30340;&#12290;            </p><pre class="programlisting">// BMT idiomSession sess = factory.openSession();Transaction tx = null;try {    tx = sess.beginTransaction();    // do some work    ...    tx.commit();}catch (RuntimeException e) {    if (tx != null) tx.rollback();    throw e; // or display error message}finally {    sess.close();}</pre><p>               &#22312;CMT&#26041;&#24335;&#19979;&#65292;&#20107;&#21153;&#22768;&#26126;&#26159;&#22312;session bean&#30340;&#37096;&#32626;&#25551;&#36848;&#31526;&#20013;&#65292;&#32780;&#19981;&#38656;&#35201;&#32534;&#31243;&#12290;               &#38500;&#38750;&#20320;&#35774;&#32622;&#20102;&#23646;&#24615;<tt class="literal">hibernate.transaction.flush_before_completion</tt>&#21644;               <tt class="literal">hibernate.transaction.auto_close_session</tt>&#20026;<tt class="literal">true</tt>&#65292;               &#21542;&#21017;&#20320;&#24517;&#39035;&#33258;&#24049;&#21516;&#27493;&#21644;&#20851;&#38381;<tt class="literal">Session</tt>&#12290;Hibernate&#21487;&#20197;&#20026;&#20320;&#33258;&#21160;&#21516;&#27493;&#21644;&#20851;&#38381;               <tt class="literal">Session</tt>&#12290;&#20320;&#21807;&#19968;&#35201;&#20570;&#30340;&#23601;&#26159;&#24403;&#21457;&#29983;&#24322;&#24120;&#26102;&#36827;&#34892;&#20107;&#21153;&#22238;&#28378;&#12290;&#24184;&#36816;&#30340;&#26159;&#65292;               &#22312;&#19968;&#20010;CMT bean&#20013;&#65292;&#20107;&#21153;&#22238;&#28378;&#29978;&#33267;&#21487;&#20197;&#30001;&#23481;&#22120;&#33258;&#21160;&#36827;&#34892;&#65292;&#22240;&#20026;&#30001;session bean&#26041;&#27861;&#25243;&#20986;&#30340;&#26410;&#22788;&#29702;&#30340;               <tt class="literal">RuntimeException</tt>&#24322;&#24120;&#21487;&#20197;&#36890;&#30693;&#23481;&#22120;&#35774;&#32622;&#20840;&#23616;&#20107;&#21153;&#22238;&#28378;&#12290;<span class="emphasis"><em>&#36825;&#24847;&#21619;&#30528;               &#22312;CMT&#20013;&#65292;&#20320;&#23436;&#20840;&#26080;&#38656;&#20351;&#29992;Hibernate&#30340;<tt class="literal">Transaction</tt> API &#12290;</em></span>            </p><p>                &#35831;&#27880;&#24847;&#65292;&#24403;&#20320;&#37197;&#32622;Hibernate&#20107;&#21153;&#24037;&#21378;&#30340;&#26102;&#20505;&#65292;&#22312;&#19968;&#20010;BMT session bean&#20013;&#65292;&#20320;&#24212;&#35813;&#36873;&#25321;                <tt class="literal">org.hibernate.transaction.JTATransactionFactory</tt>&#65292;&#22312;&#19968;&#20010;                CMT session bean&#20013;&#36873;&#25321;<tt class="literal">org.hibernate.transaction.CMTTransactionFactory</tt>&#12290;                &#35760;&#20303;&#65292;&#21516;&#26102;&#20063;&#35201;&#35774;&#32622;<tt class="literal">org.hibernate.transaction.manager_lookup_class</tt>&#12290;            </p><p>								&#22914;&#26524;&#20320;&#20351;&#29992;CMT&#29615;&#22659;&#65292;&#24182;&#19988;&#35753;&#23481;&#22120;&#33258;&#21160;&#21516;&#27493;&#21644;&#20851;&#38381;session&#65292;&#20320;&#21487;&#33021;&#20063;&#24076;&#26395;&#22312;&#20320;&#20195;&#30721;&#30340;&#19981;&#21516;&#37096;&#20998;&#20351;&#29992;								&#21516;&#19968;&#20010;session&#12290;&#19968;&#33324;&#26469;&#35828;&#65292;&#22312;&#19968;&#20010;&#38750;&#25176;&#31649;&#29615;&#22659;&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#19968;&#20010;<tt class="literal">ThreadLocal</tt>								&#21464;&#37327;&#26469;&#25345;&#26377;&#36825;&#20010;session&#65292;&#20294;&#26159;&#21333;&#20010;EJB&#26041;&#27861;&#35843;&#29992;&#21487;&#33021;&#20250;&#22312;&#19981;&#21516;&#30340;&#32447;&#31243;&#20013;&#25191;&#34892;&#65288;&#20030;&#20363;&#26469;&#35828;&#65292;&#19968;&#20010;session 								bean&#35843;&#29992;&#21478;&#19968;&#20010;session bean&#65289;&#12290;&#22914;&#26524;&#20320;&#19981;&#24819;&#22312;&#24212;&#29992;&#20195;&#30721;&#20013;&#34987;&#20256;&#36882;<tt class="literal">Session</tt>&#23545;								&#35937;&#23454;&#20363;&#30340;&#38382;&#39064;&#22256;&#25200;&#30340;&#35805;&#65292;&#37027;&#20040;<tt class="literal">SessionFactory</tt> &#25552;&#20379;&#30340;								<tt class="literal">getCurrentSession()</tt>&#26041;&#27861;&#23601;&#24456;&#36866;&#21512;&#20320;&#65292;&#35813;&#26041;&#27861;&#36820;&#22238;&#19968;&#20010;&#32465;&#23450;&#21040;JTA&#20107;&#21153;								&#19978;&#19979;&#25991;&#29615;&#22659;&#20013;&#30340;session&#23454;&#20363;&#12290;&#36825;&#20063;&#26159;&#25226;Hibernate&#38598;&#25104;&#21040;&#19968;&#20010;&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&#26368;&#31616;&#21333;&#30340;&#26041;&#27861;&#65281;&#36825;&#20010;&#8220;&#24403;								&#21069;&#30340;&#8221;session&#24635;&#26159;&#21487;&#20197;&#33258;&#21160;&#21516;&#27493;&#21644;&#33258;&#21160;&#20851;&#38381;&#65288;&#19981;&#32771;&#34385;&#19978;&#36848;&#30340;&#23646;&#24615;&#35774;&#32622;&#65289;&#12290;&#25105;&#20204;&#30340;session/transaction								&#31649;&#29702;&#20195;&#30721;&#20943;&#23569;&#21040;&#22914;&#19979;&#25152;&#31034;&#65306;            </p><pre class="programlisting">// CMT idiomSession sess = factory.getCurrentSession();// do some work...</pre><p>                &#25442;&#21477;&#35805;&#26469;&#35828;&#65292;&#22312;&#19968;&#20010;&#25176;&#31649;&#29615;&#22659;&#19979;&#65292;&#20320;&#35201;&#20570;&#30340;&#25152;&#26377;&#30340;&#20107;&#24773;&#23601;&#26159;&#35843;&#29992;                <tt class="literal">SessionFactory.getCurrentSession()</tt>&#65292;&#28982;&#21518;&#36827;&#34892;&#20320;&#30340;&#25968;&#25454;&#35775;&#38382;&#65292;&#25226;&#20854;&#20313;&#30340;&#24037;&#20316;                &#20132;&#32473;&#23481;&#22120;&#26469;&#20570;&#12290;&#20107;&#21153;&#22312;&#20320;&#30340;session bean&#30340;&#37096;&#32626;&#25551;&#36848;&#31526;&#20013;&#20197;&#21487;&#22768;&#26126;&#30340;&#26041;&#24335;&#26469;&#35774;&#32622;&#12290;session&#30340;&#29983;&#21629;&#21608;&#26399;&#23436;&#20840;

⌨️ 快捷键说明

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