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

📄 transactions.html

📁 图象处理
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<html><head>      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">   <title>&#31532;&nbsp;10&nbsp;&#31456;&nbsp;&#20107;&#21153;&#21644;&#24182;&#34892;&#65288;Transactions And Concurrency&#65289;</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="manipulatingdata.html" title="&#31532;&nbsp;9&nbsp;&#31456;&nbsp;&#25805;&#20316;&#25345;&#20037;&#21270;&#25968;&#25454;(Manipulating Persistent Data)"><link rel="next" href="queryhql.html" title="&#31532;&nbsp;11&nbsp;&#31456;&nbsp;Hibernate&#26597;&#35810;&#35821;&#35328;(Query Language), &#21363;HQL"></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;10&nbsp;&#31456;&nbsp;&#20107;&#21153;&#21644;&#24182;&#34892;&#65288;Transactions And Concurrency&#65289;</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="manipulatingdata.html">&#19978;&#19968;&#39029;</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="queryhql.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;10&nbsp;&#31456;&nbsp;&#20107;&#21153;&#21644;&#24182;&#34892;&#65288;Transactions And Concurrency&#65289;</h2></div></div><div></div></div><p>        Hibernate&#26412;&#36523;&#24182;&#19981;&#26159;&#25968;&#25454;&#24211;&#65292;&#23427;&#21482;&#26159;&#19968;&#20010;&#36731;&#37327;&#32423;&#30340;&#23545;&#35937;&#65293;&#20851;&#31995;&#25968;&#25454;&#24211;&#26144;&#23556;&#65288;object-relational&#65289;&#24037;&#20855;&#12290;&#23427;&#30340;&#20107;&#21153;&#20132;&#30001;&#24213;&#23618;&#30340;&#25968;&#25454;&#24211;&#36830;&#25509;&#31649;&#29702;&#65292;&#22914;&#26524;&#25968;&#25454;&#24211;&#36830;&#25509;&#26377;JTA&#30340;&#25903;&#25345;&#65292;&#37027;&#20040;&#22312;<tt class="literal">Session</tt>&#20013;&#36827;&#34892;&#30340;&#25805;&#20316;&#23558;&#26159;&#25972;&#20010;&#21407;&#23376;&#24615;JTA&#20107;&#21153;&#30340;&#19968;&#37096;&#20998;&#12290;Hibernate&#21487;&#20197;&#30475;&#20316;&#26159;&#28155;&#21152;&#20102;&#38754;&#21521;&#23545;&#35937;&#35821;&#20041;&#30340;JDBC&#30246;&#36866;&#37197;&#22120;&#65288;thin adapter&#65289;&#12290;    </p><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ttransactions-basics"></a>10.1.&nbsp;&#37197;&#32622;&#65292;&#20250;&#35805;&#21644;&#24037;&#21378;&#65288;Configurations, Sessions and Factories&#65289;</h2></div></div><div></div></div><p>	    <tt class="literal">SessionFactory</tt>&#30340;&#21019;&#24314;&#38656;&#35201;&#32791;&#36153;&#22823;&#37327;&#36164;&#28304;&#65292;&#23427;&#26159;&#32447;&#31243;&#23433;&#20840;&#65288;threadsafe&#65289;&#30340;&#23545;&#35937;&#65292;&#22312;&#24212;&#29992;&#20013;&#23427;&#34987;&#25152;&#26377;&#32447;&#31243;&#20849;&#20139;&#12290;&#32780;<tt class="literal">Session</tt>&#30340;&#21019;&#24314;&#32791;&#36153;&#36164;&#28304;&#24456;&#23569;&#65292;&#23427;&#19981;&#26159;&#32447;&#31243;&#23433;&#20840;&#30340;&#23545;&#35937;&#65292;&#23545;&#20110;&#19968;&#20010;&#31616;&#21333;&#21830;&#19994;&#36807;&#31243;&#65288;business process&#65289;&#65292;&#23427;&#24212;&#35813;&#21482;&#34987;&#20351;&#29992;&#19968;&#27425;&#65292;&#28982;&#21518;&#34987;&#20002;&#24323;&#12290;&#20030;&#20363;&#26469;&#35828;&#65292;&#24403;Hibernate&#22312;&#22522;&#20110;servlet&#30340;&#24212;&#29992;&#20013;&#65292;servlet&#33021;&#22815;&#20197;&#19979;&#38754;&#30340;&#26041;&#24335;&#24471;&#21040;<tt class="literal">SessionFactory</tt>&#12290;	</p><pre class="programlisting">SessionFactory sf = (SessionFactory)getServletContext().getAttribute("my.session.factory");</pre><p>	    &#27599;&#27425;&#35843;&#29992;SessionFactory&#30340;service&#26041;&#27861;&#33021;&#22815;&#29983;&#25104;&#19968;&#20010;&#26032;&#30340;<tt class="literal">Session</tt>&#23545;&#35937;&#65292;&#28982;&#21518;&#35843;&#29992;Session&#30340;<tt class="literal">flush()</tt>&#65292;&#35843;&#29992;<tt class="literal">commit()</tt>&#25552;&#20132;&#23427;&#30340;&#36830;&#25509;&#65292;&#35843;&#29992;<tt class="literal">close()</tt>&#20851;&#38381;&#23427;&#65292;&#26368;&#32456;&#20002;&#24323;&#23427;&#12290;(<tt class="literal">SessionFactory</tt>&#21487;&#33021;&#34987;&#20445;&#23384;&#22312;JNDI&#25110;&#32773;&#19968;&#20010;&#38745;&#24577;&#30340;<span class="emphasis"><em>&#21333;&#20363;&#65288;Singleton&#65289;</em></span>&#36741;&#21161;&#21464;&#37327;&#20013;&#12290;&#65289;	</p><p>	    &#22312;&#26080;&#29366;&#24577;&#30340;session bean&#20013;&#65292;&#21487;&#20197;&#21516;&#26679;&#20351;&#29992;&#31867;&#20284;&#30340;&#26041;&#27861;&#12290;bean&#22312;<tt class="literal">setSessionContext()</tt>&#20013;&#24471;&#21040;<tt class="literal">SessionFactory</tt>&#30340;&#23454;&#20363;&#65292;&#27599;&#20010;&#21830;&#19994;&#26041;&#27861;&#20250;&#29983;&#25104;&#19968;&#20010;<tt class="literal">Session</tt>&#23545;&#35937;&#65292;&#35843;&#29992;&#23427;&#30340;<tt class="literal">flush()</tt>&#21644;<tt class="literal">close()</tt>&#65292;&#24403;&#28982;&#65292;&#24212;&#29992;&#19981;&#24212;&#35813;<tt class="literal">commit()</tt>connection. (&#25226;&#23427;&#30041;&#32473;JTA.&#22312;&#23481;&#22120;&#31649;&#29702;&#30340;&#20107;&#21153;&#20013;&#65292;&#25968;&#25454;&#24211;&#36830;&#25509;&#20250;&#33258;&#21160;&#23436;&#25104;&#20107;&#21153;&#12290;)	</p><p>        &#25105;&#20204;&#29992;&#19978;&#36848;&#26041;&#27861;&#20351;&#29992;Hibernate &#30340;<tt class="literal">Transaction</tt> API&#65292;&#23545;<tt class="literal">Transaction</tt>&#25191;&#34892;&#19968;&#27425;<tt class="literal">commit()</tt>&#20250;&#25226;&#25152;&#26377;&#29366;&#24577;&#21516;&#27493;&#65292;&#25226;&#24213;&#23618;&#30340;&#25968;&#25454;&#24211;&#36830;&#25509;&#25552;&#20132;(&#23545;JTA &#20107;&#21153;&#20250;&#29305;&#27530;&#22788;&#29702;&#12290;)    </p><p>	    &#36825;&#37324;&#38656;&#35201;&#29702;&#35299;<tt class="literal">flush()</tt>&#30340;&#21547;&#20041;&#12290;	    <tt class="literal">flush()</tt>&#23558;&#25345;&#20037;&#21270;&#23384;&#20648;&#19982;&#20869;&#23384;&#20013;&#30340;&#21464;&#21270;&#36827;&#34892;&#21516;&#27493;&#65292;&#20294;<span class="emphasis"><em>&#19981;&#26159;</em></span>&#23558;&#20869;&#23384;&#30340;&#21464;&#21270;&#19982;&#25345;&#20037;&#21270;&#23384;&#20648;&#36827;&#34892;&#21516;&#27493;&#12290;&#27880;&#24847;&#23545;&#25152;&#26377;&#30340;Hibernate JDBD &#36830;&#25509;/&#20107;&#21153;&#26469;&#35828;&#65292;&#20854;&#38548;&#31163;&#32423;&#21035;&#23558;&#26045;&#21152;&#20110;&#25152;&#26377;&#30340;Hibernate&#25191;&#34892;&#30340;&#25805;&#20316;&#20043;&#19978;&#65281;	</p><p>	    &#25509;&#19979;&#26469;&#30340;&#20960;&#23567;&#33410;&#23558;&#35752;&#35770;&#21033;&#29992;&#29256;&#26412;&#21270;&#30340;&#26041;&#27861;&#26469;&#30830;&#20445;&#20107;&#21153;&#21407;&#23376;&#24615;&#65292;&#36825;&#20123;&#8220;&#39640;&#32423;&#8221;&#26041;&#27861;&#38656;&#35201;&#23567;&#24515;&#20351;&#29992;&#12290;	</p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="transactions-threads"></a>10.2.&nbsp;&#32447;&#31243;&#21644;&#36830;&#25509;&#65288;Threads and connections&#65289;</h2></div></div><div></div></div><p>	    &#22312;&#21019;&#24314;Hibernate&#20250;&#35805;&#65288;Session&#65289;&#26102;&#65292;&#20320;&#24212;&#35813;&#30041;&#24847;&#20197;&#19979;&#30340;&#23454;&#36341;&#65288;practices&#65289;&#65306;	</p><div class="itemizedlist"><ul type="disc" compact><li><p>		    &#23545;&#20110;&#19968;&#20010;&#25968;&#25454;&#24211;&#36830;&#25509;&#65292;&#19981;&#35201;&#21019;&#24314;&#19968;&#20010;&#20197;&#19978;&#30340;<tt class="literal">Session</tt>&#25110;<tt class="literal">Transaction</tt>&#12290;		</p></li><li><p>		    &#22312;&#23545;&#20110;&#19968;&#20010;&#25968;&#25454;&#24211;&#36830;&#25509;&#12289;&#19968;&#20010;&#20107;&#21153;&#20351;&#29992;&#22810;&#20010;<tt class="literal">Session</tt>&#26102;&#65292;&#20320;&#23588;&#20854;&#38656;&#35201;&#26684;&#22806;&#22320;&#23567;&#24515;&#12290;<tt class="literal">Session</tt>&#23545;&#35937;&#20250;&#35760;&#24405;&#19979;&#35843;&#20837;&#25968;&#25454;&#26356;&#26032;&#30340;&#24773;&#20917;&#65292;&#25152;&#20197;&#21478;&#19968;&#20010;<tt class="literal">Session</tt>&#23545;&#35937;&#21487;&#33021;&#20250;&#36935;&#21040;&#36807;&#26102;&#30340;&#25968;&#25454;&#12290;		</p></li><li><p>		    <tt class="literal">Session</tt><span class="emphasis"><em>&#19981;&#26159;</em></span>&#32447;&#31243;&#23433;&#20840;&#30340;&#12290;&#20915;&#19981;&#35201;&#22312;&#20004;&#20010;&#24182;&#21457;&#30340;&#32447;&#31243;&#20013;&#35775;&#38382;&#21516;&#19968;&#20010;<tt class="literal">Session</tt>&#12290;&#19968;&#20010;<tt class="literal">Session</tt>&#19968;&#33324;&#21482;&#23545;&#24212;&#19968;&#25209;&#38656;&#35201;&#19968;&#27425;&#24615;&#23436;&#25104;&#30340;&#21333;&#20803;&#25805;&#20316;&#65281;		</p></li></ul></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="transactions-identity"></a>10.3.&nbsp;&#32771;&#34385;&#23545;&#35937;&#36776;&#21035;</h2></div></div><div></div></div><p>            &#31243;&#24207;&#21487;&#33021;&#22312;&#20004;&#25209;&#21333;&#20803;&#25805;&#20316;&#20013;&#24182;&#21457;&#35775;&#38382;&#21516;&#19968;&#20010;&#23545;&#35937;&#30340;&#25345;&#20037;&#21270;&#29366;&#24577;&#12290;&#19981;&#31649;&#24590;&#26679;&#65292;&#25345;&#20037;&#21270;&#31867;&#30340;&#19968;&#20010;&#23454;&#20363;&#19981;&#21487;&#33021;&#22312;&#20004;&#20010;<tt class="literal">Session</tt>&#20013;&#20849;&#20139;&#12290;&#25152;&#20197;&#26377;&#20004;&#31181;&#19981;&#21516;&#30340;&#36776;&#21035;&#26041;&#24335;&#65306;        </p><div class="variablelist"><dl><dt><span class="term">&#25968;&#25454;&#24211;&#36776;&#21035;</span></dt><dd><p>                        <tt class="literal">foo.getId().equals( bar.getId() )</tt>                    </p></dd><dt><span class="term">JVM &#36776;&#21035;</span></dt><dd><p>                        <tt class="literal">foo==bar</tt>                    </p></dd></dl></div><p>            &#23545;&#20110;&#20381;&#38468;&#20110;&#26576;&#20010;<span class="emphasis"><em>&#29305;&#23450;</em></span><tt class="literal">Session</tt>&#30340;&#23545;&#35937;&#65292;&#20004;&#31181;&#36776;&#21035;&#26041;&#24335;&#26159;&#31561;&#20215;&#30340;&#12290;&#28982;&#32780;&#65292;&#24403;&#31243;&#24207;&#21487;&#33021;&#22312;&#20004;&#20010;&#19981;&#21516;&#30340;session&#20013;&#24182;&#21457;&#35775;&#38382;&#8220;&#21516;&#19968;&#20010;&#8221;&#65288;&#25345;&#20037;&#21270;&#36776;&#21035;&#65289;&#21830;&#19994;&#23545;&#35937;&#26102;&#65292;&#20004;&#20010;&#23454;&#20363;&#65288;&#23545;&#20110;JVM&#36776;&#21035;&#26469;&#35828;&#65289;&#21364;&#21487;&#33021;&#26159;&#8220;&#19981;&#21516;&#8221;&#30340;&#12290;        </p><p>            &#36825;&#31181;&#26041;&#24335;&#25226;&#20851;&#20110;&#24182;&#21457;&#30340;&#22836;&#30140;&#38382;&#39064;&#30041;&#32473;&#20102;Hibernate&#21644;&#25968;&#25454;&#24211;&#12290;&#31243;&#24207;&#19981;&#38656;&#35201;&#23545;&#20219;&#20309;&#21830;&#19994;&#23545;&#35937;&#36827;&#34892;&#21516;&#27493;&#65292;&#21482;&#35201;&#31243;&#24207;&#22362;&#25345;&#27599;&#20010;<tt class="literal">Session</tt>&#19968;&#20010;&#32447;&#31243;&#65292;&#25110;&#32773;&#23545;&#35937;&#36776;&#21035;&#30340;&#31574;&#30053;&#65288;&#22312;&#19968;&#20010;<tt class="literal">Session</tt>&#37325;&#65292;&#31243;&#24207;&#21487;&#20197;&#23433;&#20840;&#30340;&#20351;&#29992;<tt class="literal">==</tt>&#26469;&#27604;&#36739;&#23545;&#35937;&#65289;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="transactions-optimistic"></a>10.4.&nbsp;&#20048;&#35266;&#24182;&#21457;&#25511;&#21046;&#65288;Optimistic concurrency control&#65289;</h2></div></div><div></div></div><p>	    &#35768;&#22810;&#21830;&#19994;&#36807;&#31243;&#38656;&#35201;&#19968;&#31995;&#21015;&#19982;&#29992;&#25143;&#36827;&#34892;&#20132;&#20114;&#30340;&#36807;&#31243;&#65292;&#25968;&#25454;&#24211;&#35775;&#38382;&#31359;&#25554;&#22312;&#36825;&#20123;&#36807;&#31243;&#20013;&#12290;&#23545;&#20110;web&#21644;&#20225;&#19994;&#24212;&#29992;&#26469;&#35828;&#65292;&#36328;&#19968;&#20010;&#29992;&#25143;&#20132;&#20114;&#36807;&#31243;&#30340;&#25968;&#25454;&#20107;&#21153;&#26159;&#19981;&#21487;&#25509;&#21463;&#30340;&#12290;	</p><p>        &#32500;&#25252;&#21508;&#21830;&#19994;&#20107;&#21153;&#38388;&#30340;&#38548;&#31163;&#65288;isolocation&#65289;&#23601;&#25104;&#20026;&#24212;&#29992;&#23618;&#30340;&#37096;&#20998;&#36131;&#20219;&#65292;&#25105;&#20204;&#25226;&#36825;&#31181;&#36807;&#31243;&#31216;&#20026;&#38271;&#26102;&#38388;&#36816;&#34892;&#30340;<span class="emphasis"><em>&#24212;&#29992;&#20107;&#21153;&#65288;application transaction&#65289;</em></span>&#12290;&#21333;&#19968;&#30340;&#24212;&#29992;&#20107;&#21153;&#21487;&#33021;&#36328;&#36234;&#22810;&#20010;&#25968;&#25454;&#24211;&#20107;&#21153;&#12290;&#22914;&#26524;&#36825;&#20123;&#25968;&#25454;&#24211;&#20107;&#21153;&#20013;&#21482;&#26377;&#19968;&#20010;&#65288;&#26368;&#21518;&#19968;&#20010;&#65289;&#20445;&#23384;&#20102;&#34987;&#20462;&#25913;&#30340;&#25968;&#25454;&#65292;&#20854;&#20182;&#20107;&#21153;&#21482;&#26159;&#31616;&#21333;&#22320;&#35835;&#25968;&#25454;&#65292;&#21017;&#36825;&#20010;&#24212;&#29992;&#20107;&#21153;&#23601;&#26159;&#21407;&#23376;&#24615;&#30340;&#12290;        </p><p>	    &#21807;&#19968;&#28385;&#36275;&#39640;&#24182;&#21457;&#24615;&#20197;&#21450;&#39640;&#21487;&#25193;&#23637;&#24615;&#30340;&#26041;&#27861;&#26159;&#20351;&#29992;&#24102;&#26377;&#29256;&#26412;&#21270;&#30340;&#20048;&#35266;&#24182;&#21457;&#25511;&#21046;&#12290;Hibernate&#20026;&#20351;&#29992;&#20048;&#35266;&#24182;&#21457;&#25511;&#21046;&#30340;&#20195;&#30721;&#25552;&#20379;&#20102;&#19977;&#31181;&#21487;&#33021;&#30340;&#26041;&#27861;&#12290;	</p><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="transactions-optimistic-longsession"></a>10.4.1.&nbsp;&#20351;&#29992;&#38271;&#29983;&#21629;&#21608;&#26399;&#24102;&#26377;&#33258;&#21160;&#29256;&#26412;&#21270;&#30340;&#20250;&#35805;</h3></div></div><div></div></div><p>	        &#22312;&#25972;&#20010;&#21830;&#19994;&#36807;&#31243;&#20013;&#20351;&#29992;&#19968;&#20010;&#21333;&#29420;&#30340;<tt class="literal">Session</tt>&#23454;&#20363;&#20197;&#21450;&#23427;&#30340;&#25345;&#20037;&#21270;&#23454;&#20363;&#65292;&#36825;&#20010;<tt class="literal">Session</tt>&#20351;&#29992;&#24102;&#26377;&#29256;&#26412;&#21270;&#30340;&#20048;&#35266;&#38145;&#23450;&#26426;&#21046;&#65292;&#26469;&#30830;&#20445;&#22810;&#20010;&#25968;&#25454;&#24211;&#20107;&#21153;&#23545;&#20110;&#24212;&#29992;&#26469;&#35828;&#21482;&#26159;&#19968;&#20010;&#36923;&#36753;&#19978;&#30340;&#20107;&#21153;&#12290;&#22312;&#31561;&#24453;&#29992;&#25143;&#20132;&#20114;&#26102;&#65292;<tt class="literal">Session</tt>&#26029;&#24320;&#19982;&#25968;&#25454;&#24211;&#30340;&#36830;&#25509;&#12290;&#36825;&#20010;&#26041;&#27861;&#20174;&#25968;&#25454;&#24211;&#35775;&#38382;&#26041;&#38754;&#26469;&#30475;&#26159;&#26368;&#26377;&#25928;&#30340;&#65292;&#24212;&#29992;&#19981;&#38656;&#35201;&#20851;&#24515;&#23545;&#33258;&#24049;&#30340;&#29256;&#26412;&#26816;&#26597;&#25110;&#26159;&#37325;&#26032;&#19982;&#19981;&#38656;&#35201;&#24207;&#21015;&#21270;&#65288;transient&#65289;&#30340;&#23454;&#20363;&#36827;&#34892;&#20851;&#32852;&#12290;	    </p><p>                &#22312;&#25972;&#20010;&#24212;&#29992;&#20107;&#21153;&#20013;&#65292;&#20351;&#29992;&#21333;&#19968;&#30340;<tt class="literal">Session</tt> &#23454;&#20363;&#21644;&#23427;&#30340;&#25345;&#20037;&#21270;&#23454;&#20363;&#12290;            </p><p>                <tt class="literal">Session</tt> &#20351;&#29992;&#24102;&#26377;&#29256;&#26412;&#21270;&#30340;&#20048;&#35266;&#38145;&#23450;&#26469;&#20445;&#35777;&#22810;&#20010;&#25968;&#25454;&#24211;&#20107;&#21153;&#23545;&#31243;&#24207;&#26469;&#35828;&#23601;&#22914;&#21516;&#26159;&#21333;&#19968;&#30340;&#36923;&#36753;&#24212;&#29992;&#20107;&#21153;&#12290;&#22312;&#31561;&#24453;&#29992;&#25143;&#20132;&#20114;&#30340;&#26102;&#20505;&#65292;<tt class="literal">Session</tt> &#33073;&#31163;&#25152;&#26377;&#30340;&#24213;&#23618;JDBC&#36830;&#25509;&#12290;&#23545;&#20110;&#25968;&#25454;&#24211;&#35775;&#38382;&#26469;&#35828;&#65292;&#36825;&#31181;&#26041;&#27861;&#26159;&#26368;&#39640;&#25928;&#30340;&#12290;&#31243;&#24207;&#33258;&#24049;&#19981;&#38656;&#35201;&#20851;&#24515;&#29256;&#26412;&#26816;&#26597;&#25110;&#32773;&#25226;&#24050;&#32463;&#33073;&#31163;session&#30340;&#23454;&#20363;&#37325;&#26032;&#20851;&#32852;&#21040;session&#12290;            </p><pre class="programlisting">// foo is an instance loaded earlier by the Sessionsession.reconnect();foo.setProperty("bar");session.flush();session.connection().commit();session.disconnect();</pre><p>                <tt class="literal">foo</tt>&#23545;&#35937;&#20173;&#28982;&#30693;&#36947;&#26159;&#21738;&#20010;<tt class="literal">Session</tt>&#25226;&#33258;&#24049;&#35013;&#36733;&#30340;&#12290; &#21482;&#35201;<tt class="literal">Session</tt> &#25317;&#26377;&#19968;&#20010;JDBC&#36830;&#25509;&#65292;&#25105;&#20204;&#21487;&#20197;&#25226;&#23545;&#35937;&#30340;&#26356;&#25913;&#25552;&#20132;&#12290;            </p><p>                &#22914;&#26524;&#25105;&#20204;&#30340; <tt class="literal">Session</tt> &#22826;&#22823;&#65292;&#20197;&#33267;&#20110;&#22312;&#29992;&#25143;&#24605;&#32771;&#30340;&#26102;&#38388;&#20869;&#26080;&#27861;&#20445;&#23384;&#20303;&#65292;&#36825;&#31181;&#27169;&#24335;&#23601;&#20250;&#20986;&#29616;&#38382;&#39064;&#12290;&#27604;&#22914;&#65292;<tt class="literal">HttpSession</tt>&#24212;&#35813;&#20445;&#25345;&#23613;&#37327;&#23567;&#12290;&#22240;&#20026;<tt class="literal">Session</tt>&#20063;&#25345;&#26377;&#65288;&#24517;&#39035;&#30340;&#65289;&#31532;&#19968;&#32423;&#32531;&#23384;&#65292;&#21253;&#21547;&#25152;&#26377;&#34987;&#35013;&#36733;&#30340;&#23545;&#35937;&#65292;&#25105;&#20204;&#21482;&#33021;&#22312;&#24456;&#23569;&#30340;request/response&#21608;&#26399;&#20013;&#20351;&#29992;&#36825;&#19968;&#31574;&#30053;&#12290;&#36825;&#31181;&#23569;&#29992;&#26159;&#34987;&#40723;&#21169;&#30340;&#65292;&#22240;&#20026;<tt class="literal">Session</tt> &#24456;&#24555;&#23601;&#20250;&#20986;&#29616;&#36807;&#26102;&#30340;&#25968;&#25454;&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="transactions-optimistic-detached"></a>10.4.2.&nbsp;&#20351;&#29992;&#24102;&#26377;&#33258;&#21160;&#29256;&#26412;&#21270;&#30340;&#22810;&#20010;&#20250;&#35805;</h3></div></div><div></div></div><p>	        &#27599;&#20010;&#19982;&#25345;&#20037;&#21270;&#23384;&#20648;&#30340;&#20132;&#20114;&#20986;&#29616;&#22312;&#19968;&#20010;&#26032;&#30340;<tt class="literal">Session</tt>&#20013;&#65292;&#22312;&#27599;&#27425;&#19982;&#25968;&#25454;&#24211;&#30340;&#20132;&#20114;&#20013;&#65292;&#20351;&#29992;&#30456;&#21516;&#30340;&#25345;&#20037;&#21270;&#23454;&#20363;&#12290;&#24212;&#29992;&#25805;&#20316;&#37027;&#20123;&#20174;&#20854;&#23427;<tt class="literal">Session</tt>&#35843;&#20837;&#30340;&#24050;&#32463;&#33073;&#31163;session&#30340;&#23454;&#20363;&#30340;&#29366;&#24577;&#65292;&#36890;&#36807;&#20351;&#29992;<tt class="literal">Session.update()</tt>&#25110;&#32773;<tt class="literal">Session.saveOrUpdate()</tt>&#26469;&#37325;&#26032;&#24314;&#31435;&#19982;&#23427;&#20204;&#30340;&#20851;&#32852;&#12290;	    </p><pre class="programlisting">// foo is an instance loaded by a previous Session

⌨️ 快捷键说明

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