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

📄 transactions.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<html><head>      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">   <title>&#31532;&nbsp;12&nbsp;&#31456;&nbsp;&#20107;&#21153;&#21644;&#24182;&#21457;</title><link rel="stylesheet" href="../shared/css/html.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="HIBERNATE - &#31526;&#21512;Java&#20064;&#24815;&#30340;&#20851;&#31995;&#25968;&#25454;&#24211;&#25345;&#20037;&#21270;"><link rel="up" href="index.html" title="HIBERNATE - &#31526;&#21512;Java&#20064;&#24815;&#30340;&#20851;&#31995;&#25968;&#25454;&#24211;&#25345;&#20037;&#21270;"><link rel="previous" href="objectstate.html" title="&#31532;&nbsp;11&nbsp;&#31456;&nbsp;&#19982;&#23545;&#35937;&#20849;&#20107;"><link rel="next" href="events.html" title="&#31532;&nbsp;13&nbsp;&#31456;&nbsp;&#xA;	&#25318;&#25130;&#22120;&#19982;&#20107;&#20214;(Interceptors and events)&#xA;	"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">&#31532;&nbsp;12&nbsp;&#31456;&nbsp;&#20107;&#21153;&#21644;&#24182;&#21457;</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="objectstate.html">&#19978;&#19968;&#39029;</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="events.html">&#19979;&#19968;&#39029;</a></td></tr></table><hr></div><div class="chapter" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title"><a name="transactions"></a>&#31532;&nbsp;12&nbsp;&#31456;&nbsp;&#20107;&#21153;&#21644;&#24182;&#21457;</h2></div></div><div></div></div><p>			Hibernate&#30340;&#20107;&#21153;&#21644;&#24182;&#21457;&#25511;&#21046;&#24456;&#23481;&#26131;&#25484;&#25569;&#12290;Hibernate&#30452;&#25509;&#20351;&#29992;JDBC&#36830;&#25509;&#21644;JTA&#36164;&#28304;&#65292;&#19981;&#28155;&#21152;&#20219;&#20309;&#38468;&#21152;&#38145;&#23450;			&#34892;&#20026;&#12290;&#25105;&#20204;&#24378;&#28872;&#25512;&#33616;&#20320;&#33457;&#28857;&#26102;&#38388;&#20102;&#35299;JDBC&#32534;&#31243;&#65292;ANSI SQL&#26597;&#35810;&#35821;&#35328;&#21644;&#20320;&#20351;&#29992;			&#30340;&#25968;&#25454;&#24211;&#31995;&#32479;&#30340;&#20107;&#21153;&#38548;&#31163;&#35268;&#33539;&#12290;Hibernate&#21482;&#28155;&#21152;&#33258;&#21160;&#29256;&#26412;&#31649;&#29702;&#65292;&#32780;&#19981;&#20250;&#38145;			&#23450;&#20869;&#23384;&#20013;&#30340;&#23545;&#35937;&#65292;&#20063;&#19981;&#20250;&#25913;&#21464;&#25968;&#25454;&#24211;&#20107;&#21153;&#30340;&#38548;&#31163;&#32423;&#21035;&#12290;&#22522;&#26412;&#19978;&#65292;&#20351;&#29992;			Hibernate&#23601;&#22909;&#20687;&#30452;&#25509;&#20351;&#29992;JDBC(&#25110;&#32773;JTA/CMT)&#26469;&#35775;&#38382;&#20320;&#30340;&#25968;&#25454;&#24211;&#36164;&#28304;&#12290;	</p><p>				&#38500;&#20102;&#33258;&#21160;&#29256;&#26412;&#31649;&#29702;&#65292;&#38024;&#23545;&#34892;&#32423;&#24754;&#35266;&#38145;&#23450;&#65292;Hibernate&#20063;&#25552;&#20379;&#20102;&#36741;&#21161;&#30340;API&#65292;&#23427;&#20351;&#29992;&#20102;				<tt class="literal">SELECT FOR UPDATE</tt>&#30340;SQL&#35821;&#27861;&#12290;&#26412;&#31456;&#21518;&#38754;&#20250;&#35752;&#35770;&#36825;&#20010;API&#12290;		</p><p>					&#25105;&#20204;&#20174;<tt class="literal">Configuration</tt>&#23618;&#12289;<tt class="literal">SessionFactory</tt>&#23618;, &#21644;      		<tt class="literal">Session</tt>&#23618;&#24320;&#22987;&#35752;&#35770;Hibernate&#30340;&#24182;&#34892;&#25511;&#21046;&#12289;&#25968;&#25454;&#24211;&#20107;&#21153;&#21644;&#24212;&#29992;        	&#31243;&#24207;&#30340;&#38271;&#20107;&#21153;&#12290;	</p><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="transactions-basics"></a>12.1.&nbsp;Session&#21644;&#20107;&#21153;&#33539;&#22260;(transaction scopes)</h2></div></div><div></div></div><p>						&#19968;&#20010;<tt class="literal">SessionFactory</tt>&#23545;&#35937;&#30340;&#21019;&#24314;&#20195;&#20215;&#24456;&#26114;&#36149;&#65292;&#23427;&#26159;&#32447;&#31243;&#23433;&#20840;&#30340;&#23545;&#35937;&#65292;&#23427;&#34987;&#35774;&#35745;&#25104;&#21487;&#20197;						&#20026;&#25152;&#26377;&#30340;&#24212;&#29992;&#31243;&#24207;&#32447;&#31243;&#25152;&#20849;&#20139;&#12290;&#23427;&#21482;&#21019;&#24314;&#19968;&#27425;&#65292;&#36890;&#24120;&#26159;&#22312;&#24212;&#29992;&#31243;&#24207;&#21551;&#21160;&#30340;&#26102;&#20505;&#65292;&#30001;&#19968;&#20010;						<tt class="literal">Configuraion</tt>&#30340;&#23454;&#20363;&#26469;&#21019;&#24314;&#12290;								</p><p>						&#19968;&#20010;<tt class="literal">Session</tt>&#30340;&#23545;&#35937;&#26159;&#36731;&#22411;&#30340;&#65292;&#38750;&#32447;&#31243;&#23433;&#20840;&#30340;&#65292;&#23545;&#20110;&#21333;&#20010;&#19994;&#21153;&#36827;&#31243;&#65292;&#21333;&#20010;&#30340;						&#24037;&#20316;&#21333;&#20803;&#32780;&#35328;&#65292;&#23427;&#21482;&#34987;&#20351;&#29992;&#19968;&#27425;&#65292;&#28982;&#21518;&#23601;&#20002;&#24323;&#12290;&#21482;&#26377;&#22312;&#38656;&#35201;&#30340;&#26102;&#20505;&#65292;<tt class="literal">Session</tt>						&#25165;&#20250;&#33719;&#21462;&#19968;&#20010;JDBC&#30340;<tt class="literal">Connection</tt>&#65288;&#25110;&#19968;&#20010;<tt class="literal">Datasource</tt>&#65289;						&#23545;&#35937;&#12290;&#25152;&#20197;&#20320;&#21487;&#20197;&#25918;&#24515;&#30340;&#25171;&#24320;&#21644;&#20851;&#38381;<tt class="literal">Session</tt>&#65292;&#29978;&#33267;&#24403;&#20320;&#24182;&#19981;&#30830;&#23450;&#19968;&#20010;&#29305;&#23450;&#30340;&#35831;						&#27714;&#26159;&#21542;&#38656;&#35201;&#25968;&#25454;&#35775;&#38382;&#26102;&#65292;&#20320;&#20063;&#21487;&#20197;&#36825;&#26679;&#20570;&#12290;(&#19968;&#26086;&#20320;&#23454;&#29616;&#19979;&#38754;&#25552;&#21040;&#30340;&#20351;&#29992;&#20102;&#35831;&#27714;&#25318;&#25130;&#30340;&#27169;&#24335;&#65292;&#36825;&#23601;						&#21464;&#24471;&#24456;&#37325;&#35201;&#20102;&#12290;				</p><p>					&#27492;&#22806;&#25105;&#20204;&#36824;&#35201;&#32771;&#34385;&#25968;&#25454;&#24211;&#20107;&#21153;&#12290;&#25968;&#25454;&#24211;&#20107;&#21153;&#24212;&#35813;&#23613;&#21487;&#33021;&#30340;&#30701;&#65292;&#38477;&#20302;&#25968;&#25454;&#24211;&#38145;&#23450;&#36896;&#25104;&#30340;&#36164;&#28304;&#20105;&#29992;&#12290;					&#25968;&#25454;&#24211;&#38271;&#20107;&#21153;&#20250;&#23548;&#33268;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#26080;&#27861;&#25193;&#23637;&#21040;&#39640;&#30340;&#24182;&#21457;&#36127;&#36733;&#12290;				</p><p>				&#19968;&#20010;&#25805;&#20316;&#21333;&#20803;(Unit of work)&#30340;&#33539;&#22260;&#26159;&#22810;&#22823;&#65311;&#21333;&#20010;&#30340;Hibernate <tt class="literal">Session</tt>&#33021;&#36328;&#36234;&#22810;&#20010;				&#25968;&#25454;&#24211;&#20107;&#21153;&#21527;&#65311;&#36824;&#26159;&#19968;&#20010;<tt class="literal">Session</tt>&#30340;&#20316;&#29992;&#33539;&#22260;&#23545;&#24212;&#19968;&#20010;&#25968;&#25454;&#24211;&#20107;&#21153;&#30340;&#33539;&#22260;&#65311;&#24212;&#35813;&#20309;&#26102;&#25171;&#24320;				<tt class="literal">Session</tt>&#65292;&#20309;&#26102;&#20851;&#38381;<tt class="literal">Session</tt>&#65311;&#65292;&#20320;&#21448;&#22914;&#20309;&#21010;&#20998;&#25968;&#25454;&#24211;&#20107;&#21153;&#30340;&#36793;&#30028;&#21602;&#65311;		</p><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="transactions-basics-uow"></a>12.1.1.&nbsp;&#25805;&#20316;&#21333;&#20803;(Unit of work)</h3></div></div><div></div></div><p>				&#39318;&#20808;&#65292;&#21035;&#20877;&#29992;<span class="emphasis"><em>session-per-operation</em></span>&#36825;&#31181;&#21453;&#27169;&#24335;&#20102;&#65292;&#20063;&#23601;&#26159;&#35828;&#65292;&#22312;&#21333;&#20010;&#32447;&#31243;&#20013;&#65292;				&#19981;&#35201;&#22240;&#20026;&#19968;&#27425;&#31616;&#21333;&#30340;&#25968;&#25454;&#24211;&#35843;&#29992;&#65292;&#23601;&#25171;&#24320;&#21644;&#20851;&#38381;&#19968;&#27425;<tt class="literal">Session</tt>&#65281;&#25968;&#25454;&#24211;&#20107;&#21153;&#20063;&#26159;&#22914;&#27492;&#12290;				&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&#25968;&#25454;&#24211;&#35843;&#29992;&#26159;&#25353;&#29031;&#35745;&#21010;&#22909;&#30340;&#27425;&#24207;&#65292;&#20998;&#32452;&#20026;&#21407;&#23376;&#30340;&#25805;&#20316;&#21333;&#20803;&#12290;&#65288;&#27880;&#24847;&#65292;&#36825;&#20063;&#24847;&#21619;&#30528;&#65292;&#24212;&#29992;&#31243;				&#24207;&#20013;&#65292;&#22312;&#21333;&#20010;&#30340;SQL&#35821;&#21477;&#21457;&#36865;&#20043;&#21518;&#65292;&#33258;&#21160;&#20107;&#21153;&#25552;&#20132;(auto-commit)&#27169;&#24335;&#22833;&#25928;&#20102;&#12290;&#36825;&#31181;&#27169;&#24335;&#19987;&#38376;&#20026;SQL&#25511;&#21046;&#21488;&#25805;&#20316;&#35774;&#35745;&#30340;&#12290;				Hibernate&#31105;&#27490;&#31435;&#21363;&#33258;&#21160;&#20107;&#21153;&#25552;&#20132;&#27169;&#24335;&#65292;&#25110;&#32773;&#26399;&#26395;&#24212;&#29992;&#26381;&#21153;&#22120;&#31105;&#27490;&#31435;&#21363;&#33258;&#21160;&#20107;&#21153;&#25552;&#20132;&#27169;&#24335;&#12290;&#65289;		</p><p>				&#22312;&#22810;&#29992;&#25143;&#30340;client/server&#24212;&#29992;&#31243;&#24207;&#20013;&#65292;&#26368;&#24120;&#29992;&#30340;&#27169;&#24335;&#26159; <span class="emphasis"><em>&#27599;&#20010;&#35831;&#27714;&#19968;&#20010;&#20250;&#35805;(session-per-request)</em></span>&#12290;				&#22312;&#36825;&#31181;&#27169;&#24335;&#19979;&#65292;&#26469;&#33258;&#23458;&#25143;&#31471;&#30340;&#35831;&#27714;&#34987;&#21457;&#36865;&#21040;&#26381;&#21153;&#22120;&#31471;&#65288;&#21363;Hibernate&#25345;&#20037;&#21270;&#23618;&#36816;&#34892;&#30340;&#22320;&#26041;&#65289;&#65292;&#19968;				&#20010;&#26032;&#30340;Hibernate <tt class="literal">Session</tt>&#34987;&#25171;&#24320;&#65292;&#24182;&#19988;&#25191;&#34892;&#36825;&#20010;&#25805;&#20316;&#21333;&#20803;&#20013;&#25152;&#26377;&#30340;&#25968;&#25454;&#24211;&#25805;&#20316;&#12290;				&#19968;&#26086;&#25805;&#20316;&#23436;&#25104;&#65288;&#21516;&#26102;&#21457;&#36865;&#21040;&#23458;&#25143;&#31471;&#30340;&#21709;&#24212;&#20063;&#20934;&#22791;&#23601;&#32490;&#65289;&#65292;session&#34987;&#21516;&#27493;&#65292;&#28982;&#21518;&#20851;&#38381;&#12290;&#20320;&#20063;&#21487;&#20197;&#20351;&#29992;&#21333;				&#20010;&#25968;&#25454;&#24211;&#20107;&#21153;&#26469;&#22788;&#29702;&#23458;&#25143;&#31471;&#35831;&#27714;&#65292;&#22312;&#20320;&#25171;&#24320;<tt class="literal">Session</tt>&#20043;&#21518;&#21551;&#21160;&#20107;&#21153;&#65292;&#22312;&#20320;&#20851;&#38381;				<tt class="literal">Session</tt>&#20043;&#21069;&#25552;&#20132;&#20107;&#21153;&#12290;&#20250;&#35805;&#21644;&#35831;&#27714;&#20043;&#38388;&#30340;&#20851;&#31995;&#26159;&#19968;&#23545;&#19968;&#30340;&#20851;&#31995;&#65292;&#36825;&#31181;&#27169;&#24335;&#23545;				&#20110;&#22823;&#22810;&#25968;&#24212;&#29992;&#31243;&#24207;&#26469;&#35828;&#26159;&#24456;&#26834;&#30340;&#12290;		</p><p>					&#30495;&#27491;&#30340;&#25361;&#25112;&#22312;&#20110;&#22914;&#20309;&#21435;&#23454;&#29616;&#36825;&#31181;&#27169;&#24335;&#65306;&#19981;&#20165;<tt class="literal">Session</tt>&#21644;&#20107;&#21153;&#24517;&#39035;&#34987;&#27491;&#30830;&#30340;&#24320;&#22987;&#21644;&#32467;&#26463;&#65292;					&#32780;&#19988;&#20182;&#20204;&#20063;&#24517;&#39035;&#33021;&#34987;&#25968;&#25454;&#35775;&#38382;&#25805;&#20316;&#35775;&#38382;&#12290;&#29992;&#25318;&#25130;&#22120;&#26469;&#23454;&#29616;&#25805;&#20316;&#21333;&#20803;&#30340;&#21010;&#20998;&#65292;&#35813;&#25318;&#25130;&#22120;&#22312;&#23458;&#25143;&#31471;&#35831;&#27714;&#36798;&#21040;&#26381;					&#21153;&#22120;&#31471;&#30340;&#26102;&#20505;&#24320;&#22987;&#65292;&#22312;&#26381;&#21153;&#22120;&#31471;&#21457;&#36865;&#21709;&#24212;&#65288;&#21363;&#65292;<tt class="literal">ServletFilter</tt>&#65289;&#20043;&#21069;&#32467;&#26463;&#12290;&#25105;&#20204;&#25512;&#33616;					&#20351;&#29992;&#19968;&#20010;<tt class="literal">ThreadLocal</tt> &#21464;&#37327;&#65292;&#25226; <tt class="literal">Session</tt>&#32465;&#23450;&#21040;&#22788;&#29702;&#23458;&#25143;&#31471;&#35831;&#27714;&#30340;&#32447;					&#31243;&#19978;&#21435;&#12290;&#36825;&#31181;&#26041;&#24335;&#21487;&#20197;&#35753;&#36816;&#34892;&#22312;&#35813;&#32447;&#31243;&#19978;&#30340;&#25152;&#26377;&#31243;&#24207;&#20195;&#30721;&#36731;&#26494;&#30340;&#35775;&#38382;<tt class="literal">Session</tt>&#65288;&#23601;&#20687;&#35775;&#38382;&#19968;					&#20010;&#38745;&#24577;&#21464;&#37327;&#37027;&#26679;&#65289;&#12290;&#20320;&#20063;&#21487;&#20197;&#22312;&#19968;&#20010;<tt class="literal">ThreadLocal</tt> &#21464;&#37327;&#20013;&#20445;&#25345;&#20107;&#21153;&#19978;&#19979;&#25991;&#29615;&#22659;&#65292;&#19981;&#36807;&#36825;&#20381;&#36182;					&#20110;&#20320;&#25152;&#36873;&#25321;&#30340;&#25968;&#25454;&#24211;&#20107;&#21153;&#21010;&#20998;&#26426;&#21046;&#12290;&#36825;&#31181;&#23454;&#29616;&#27169;&#24335;&#34987;&#31216;&#20043;&#20026; <span class="emphasis"><em>ThreadLocal Session</em></span>&#21644;					<span class="emphasis"><em>Open Session in View</em></span>&#12290;&#20320;&#21487;&#20197;&#24456;&#23481;&#26131;&#30340;&#25193;&#23637;&#26412;&#25991;&#21069;&#38754;&#31456;&#33410;&#23637;&#31034;&#30340; 					<tt class="literal">HibernateUtil</tt> &#36741;&#21161;&#31867;&#26469;&#23454;&#29616;&#36825;&#31181;&#27169;&#24335;&#12290;&#24403;&#28982;&#65292;&#20320;&#24517;&#39035;&#25214;&#21040;&#19968;&#31181;&#23454;&#29616;&#25318;&#25130;&#22120;&#30340;&#26041;&#27861;&#65292;&#24182;					&#19988;&#21487;&#20197;&#25226;&#25318;&#25130;&#22120;&#38598;&#25104;&#21040;&#20320;&#30340;&#24212;&#29992;&#29615;&#22659;&#20013;&#12290;&#35831;&#21442;&#32771;Hibernate&#32593;&#31449;&#19978;&#38754;&#30340;&#25552;&#31034;&#21644;&#20363;&#23376;&#12290;			</p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="transactions-basics-apptx"></a>12.1.2.&nbsp;&#24212;&#29992;&#31243;&#24207;&#20107;&#21153;(Application transactions)</h3></div></div><div></div></div><p>							session-per-request&#27169;&#24335;&#19981;&#20165;&#20165;&#26159;&#19968;&#20010;&#21487;&#20197;&#29992;&#26469;&#35774;&#35745;&#25805;&#20316;&#21333;&#20803;&#30340;&#26377;&#29992;&#27010;&#24565;&#12290;&#24456;&#22810;&#19994;&#21153;&#22788;&#29702;&#27969;&#31243;&#37117;&#38656;							&#35201;&#19968;&#31995;&#21015;&#23436;&#25972;&#30340;&#21644;&#29992;&#25143;&#20043;&#38388;&#30340;&#20132;&#20114;&#65292;&#21363;&#29992;&#25143;&#23545;&#25968;&#25454;&#24211;&#30340;&#20132;&#21449;&#35775;&#38382;&#12290;&#22312;&#22522;&#20110;web&#30340;&#24212;&#29992;&#21644;&#20225;&#19994;							&#24212;&#29992;&#20013;&#65292;&#36328;&#29992;&#25143;&#20132;&#20114;&#30340;&#25968;&#25454;&#24211;&#20107;&#21153;&#26159;&#26080;&#27861;&#25509;&#21463;&#30340;&#12290;&#32771;&#34385;&#19979;&#38754;&#30340;&#20363;&#23376;&#65306;						</p><div class="itemizedlist"><ul type="disc"><li><p>												&#22312;&#30028;&#38754;&#30340;&#31532;&#19968;&#23631;&#65292;&#25171;&#24320;&#23545;&#35805;&#26694;&#65292;&#29992;&#25143;&#25152;&#30475;&#21040;&#30340;&#25968;&#25454;&#26159;&#34987;&#19968;&#20010;&#29305;&#23450;&#30340; <tt class="literal">Session</tt> &#21644;&#25968;&#25454;												&#24211;&#20107;&#21153;&#36733;&#20837;(load)&#30340;&#12290;&#29992;&#25143;&#21487;&#20197;&#38543;&#24847;&#20462;&#25913;&#23545;&#35805;&#26694;&#20013;&#30340;&#25968;&#25454;&#23545;&#35937;&#12290;										</p></li><li><p>						5&#20998;&#38047;&#21518;&#65292;&#29992;&#25143;&#28857;&#20987;&#8220;&#20445;&#23384;&#8221;&#65292;&#26399;&#26395;&#25152;&#20570;&#20986;&#30340;&#20462;&#25913;&#34987;&#25345;&#20037;&#21270;&#65307;&#21516;&#26102;&#20182;&#20063;&#26399;&#26395;&#33258;&#24049;&#26159;&#21807;&#19968;&#20462;&#25913;&#36825;&#20010;&#20449;&#24687;&#30340;&#20154;&#65292;&#19981;&#20250;&#20986;&#29616;						&#20462;&#25913;&#20914;&#31361;&#12290;				</p></li></ul></div><p>				&#20174;&#29992;&#25143;&#30340;&#35282;&#24230;&#26469;&#30475;&#65292;&#25105;&#20204;&#25226;&#36825;&#20010;&#25805;&#20316;&#21333;&#20803;&#31216;&#20026;<span class="emphasis"><em>&#24212;&#29992;&#31243;&#24207;&#38271;&#20107;&#21153;</em></span>&#65288;application transaction&#65289;&#12290;				&#22312;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#20013;&#65292;&#21487;&#20197;&#26377;&#24456;&#22810;&#31181;&#26041;&#27861;&#26469;&#23454;&#29616;&#23427;&#12290;

⌨️ 快捷键说明

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