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

📄 manipulating-data.html

📁 hibernate的一点学习资料!
💻 HTML
📖 第 1 页 / 共 5 页
字号:
                    &#22788;&#29702;&#24322;&#24120;                </p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="manipulating-data-s13-1"></a>8.10.1.&nbsp;&#28165;&#27927;(Flush)session</h3></div></div><div></div></div><p>                &#22914;&#26524;&#20320;&#27491;&#22312;&#20351;&#29992;<tt class="literal">Transaction</tt>API&#65292;&#20320;&#23601;&#19981;&#29992;&#25285;&#24515;&#36825;&#20010;&#27493;&#39588;&#12290;&#22312;&#20107;&#21153;&#25552;&#20132;&#30340;&#26102;&#20505;&#65292;&#38544;&#21547;&#23601;&#20250;&#21253;&#25324;&#36825;&#19968;&#27493;&#12290;&#21542;&#21017;&#65292;&#20320;&#24212;&#35813;&#35843;&#29992;<tt class="literal">Session.flush()</tt>&#26469;&#30830;&#20445;&#20320;&#25152;&#26377;&#30340;&#20462;&#25913;&#37117;&#19982;&#25968;&#25454;&#24211;&#21516;&#27493;&#12290;            </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="manipulating-data-s13-2"></a>8.10.2.&nbsp;&#25552;&#20132;&#20107;&#21153;</h3></div></div><div></div></div><p>                &#22914;&#26524;&#20320;&#27491;&#22312;&#20351;&#29992;Hibernate &#30340;<tt class="literal">Transaction</tt> API,&#20195;&#30721;&#31867;&#20284;&#36825;&#26679;&#65306;            </p><pre class="programlisting">tx.commit(); // flush the Session and commit the transaction</pre><p>                &#22914;&#26524;&#20320;&#33258;&#34892;&#31649;&#29702;JDBC&#20107;&#21153;&#65292;&#20320;&#24212;&#35813;&#25163;&#24037;&#23545;JDBC &#36830;&#25509;&#25191;&#34892;<tt class="literal">commit()</tt>&#12290;            </p><pre class="programlisting">sess.flush();sess.connection().commit();  // not necessary for JTA datasource</pre><p>                &#22914;&#26524;&#20320;&#20915;&#23450;<span class="emphasis"><em>&#19981;</em></span>&#25552;&#20132;&#20320;&#30340;&#26356;&#25913;&#65306;            </p><pre class="programlisting">tx.rollback();  // rollback the transaction</pre><p>                &#25110;&#32773;:            </p><pre class="programlisting">// not necessary for JTA datasource, important otherwisesess.connection().rollback();</pre><p>                &#22914;&#26524;&#20320;&#22238;&#28378;&#20102;&#20107;&#21153;,&#20320;&#24212;&#35813;&#31435;&#21363;&#20851;&#38381;&#21644;&#21462;&#28040;&#24403;&#21069;session,&#30830;&#20445;Hibernate&#20869;&#37096;&#29366;&#24577;&#30340;&#23436;&#25972;&#24615;&#12290;            </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="manipulating-data-s13-3"></a>8.10.3.&nbsp;&#20851;&#38381;session</h3></div></div><div></div></div><p>                &#35843;&#29992;<tt class="literal">Session.close()</tt>&#23601;&#26631;&#24535;&#36825;&#20010;session&#36827;&#20837;&#20102;&#23614;&#22768;&#12290;<tt class="literal">close()</tt>&#20027;&#35201;&#30340;&#21547;&#20041;&#23601;&#26159;&#19982;&#36825;&#20010;session&#30456;&#20851;&#30340;JDBC&#36830;&#25509;&#20250;&#34987;&#25918;&#24323;&#12290;            </p><pre class="programlisting">tx.commit();sess.close();</pre><pre class="programlisting">sess.flush();sess.connection().commit();  // not necessary for JTA datasourcesess.close();</pre><p>                &#22914;&#26524;&#20320;&#33258;&#34892;&#31649;&#29702;&#36830;&#25509;&#65292;<tt class="literal">close()</tt>&#20250;&#36820;&#22238;&#36830;&#25509;&#30340;&#19968;&#20010;&#24341;&#29992;&#65292;&#20320;&#23601;&#21487;&#20197;&#25163;&#24037;&#25226;&#23427;&#20851;&#38381;&#65292;&#25110;&#32773;&#36820;&#22238;&#23427;&#21040;&#36830;&#25509;&#27744;&#21435;&#12290;&#20854;&#20182;&#24773;&#20917;&#19979;&#65292;<tt class="literal">close()</tt>&#20250;&#25226;&#23427;&#36820;&#22238;&#21040;&#36830;&#25509;&#27744;&#21435;&#12290;            </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="manipulating-data-s13-4"></a>8.10.4.&nbsp;&#22788;&#29702;&#24322;&#24120;</h3></div></div><div></div></div><p>                &#22914;&#26524;<tt class="literal">Session</tt>&#25243;&#20986;&#20102;&#19968;&#20010;exception(&#21253;&#25324;&#20219;&#20309;<tt class="literal">SQLException</tt>),&#20320;&#24212;&#35813;&#31435;&#21051;&#22238;&#28378;&#36825;&#20010;&#20107;&#21153;&#65292;&#35843;&#29992;<tt class="literal">Session.close)()</tt>&#26469;&#21462;&#28040;&#36825;&#20010;<tt class="literal">Session</tt>&#23454;&#20363;&#12290;<tt class="literal">Session</tt>&#20013;&#30340;&#19968;&#20123;&#29305;&#23450;&#26041;&#24335;&#20250;&#30830;&#20445;session<span class="emphasis"><em>&#19981;&#20250;</em></span>&#22788;&#20110;&#19968;&#20010;&#19981;&#31283;&#23450;&#19981;&#23436;&#25972;&#30340;&#29366;&#24577;&#12290;            </p><p>                &#24314;&#35758;&#37319;&#29992;&#19979;&#38754;&#30340;&#24322;&#24120;&#22788;&#29702;&#29255;&#26029;&#65306;            </p><pre class="programlisting">Session sess = factory.openSession();Transaction tx = null;try {    tx = sess.beginTransaction();    // do some work    ...    tx.commit();}catch (Exception e) {    if (tx!=null) tx.rollback();    throw e;}finally {    sess.close();}</pre><p>                &#22914;&#26524;&#20320;&#26159;&#25163;&#24037;&#31649;&#29702;JDBC&#20107;&#21153;&#30340;&#65292;&#29992;&#19979;&#38754;&#36825;&#27573;:            </p><pre class="programlisting">Session sess = factory.openSession();try {    // do some work    ...    sess.flush();    sess.connection().commit();}catch (Exception e) {    sess.connection().rollback();    throw e;}finally {    sess.close();}</pre><p>                &#22914;&#26524;&#20320;&#26159;&#20174;JTA&#20013;&#33719;&#24471;&#25968;&#25454;&#28304;&#30340;&#65306;            </p><pre class="programlisting">UserTransaction ut = .... ;Session sess = factory.openSession();try {    // do some work    ...    sess.flush();}catch (Exception e) {    ut.setRollbackOnly();    throw e;}finally {    sess.close();}</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="manipulating-data-s15"></a>8.11.&nbsp;&#25318;&#25130;&#22120;(Interceptors)</h2></div></div><div></div></div><p>            <tt class="literal">Interceptor</tt>&#25509;&#21475;&#25552;&#20379;&#20174;session&#21040;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#30340;&#22238;&#35843;&#26041;&#27861;&#65292;&#35753;&#20320;&#30340;&#31243;&#24207;&#21487;&#20197;&#35266;&#23519;&#21644;&#22312;&#25345;&#20037;&#21270;&#23545;&#35937;&#20445;&#23384;/&#26356;&#25913;/&#21024;&#38500;&#25110;&#32773;&#35013;&#36733;&#30340;&#26102;&#20505;&#25805;&#20316;&#23427;&#30340;&#23646;&#24615;&#12290;&#19968;&#31181;&#21487;&#33021;&#30340;&#29992;&#36884;&#26159;&#29992;&#26469;&#30417;&#35270;&#32479;&#35745;&#20449;&#24687;&#12290;&#27604;&#22914;&#65292;&#19979;&#38754;&#30340;<tt class="literal">Interceptor</tt>&#20250;&#33258;&#21160;&#22312;&#19968;&#20010;<tt class="literal">Auditable</tt>&#21019;&#24314;&#30340;&#26102;&#20505;&#35774;&#32622;&#20854;<tt class="literal">createTimestamp</tt>,&#24182;&#19988;&#24403;&#23427;&#34987;&#26356;&#25913;&#30340;&#26102;&#20505;&#65292;&#35774;&#32622;&#20854;<tt class="literal">lastUpdateTimestamp</tt>&#23646;&#24615;&#12290;        </p><pre class="programlisting">package net.sf.hibernate.test;import java.io.Serializable;import java.util.Date;import java.util.Iterator;import net.sf.hibernate.Interceptor;import net.sf.hibernate.type.Type;public class AuditInterceptor implements Interceptor, Serializable {    private int updates;    private int creates;    public void onDelete(Object entity,                         Serializable id,                         Object[] state,                         String[] propertyNames,                         Type[] types) {        // do nothing    }    public boolean onFlushDirty(Object entity,                                 Seria

⌨️ 快捷键说明

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