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

📄 manipulatingdata.html

📁 图象处理
💻 HTML
📖 第 1 页 / 共 5 页
字号:
}</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="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="manipulatingdata-graphs"></a>9.8.&nbsp;&#29983;&#21629;&#21608;&#26399;&#21644;&#23545;&#35937;&#22270;(Lifecyles and object graphs)</h2></div></div><div></div></div><p>            &#35201;&#20445;&#23384;&#25110;&#32773;&#26356;&#26032;&#19968;&#20010;&#23545;&#35937;&#20851;&#32852;&#22270;&#20013;&#25152;&#26377;&#30340;&#25152;&#26377;&#23545;&#35937;&#65292;&#20320;&#24517;&#39035;&#20570;&#21040;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#20445;&#35777;&#27599;&#19968;&#20010;&#23545;&#35937;&#37117;&#25191;&#34892;<tt class="literal">save()</tt>, <tt class="literal">saveOrUpdate()</tt> &#25110;                    <tt class="literal">update()</tt>&#26041;&#27861;&#65292;&#25110;&#32773;&#65292;                                    </p></li><li><p>                    &#22312;&#23450;&#20041;&#20851;&#32852;&#23545;&#35937;&#30340;&#26144;&#23556;&#26102;&#65292;&#20351;&#29992;<tt class="literal">cascade="all"</tt>&#25110;<tt class="literal">cascade="save-update"</tt>&#12290;                </p></li></ul></div><p>            &#31867;&#20284;&#30340;&#65292;&#35201;&#21024;&#38500;&#19968;&#20010;&#20851;&#31995;&#22270;&#20013;&#30340;&#25152;&#26377;&#23545;&#35937;&#65292;&#24517;&#39035;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#23545;&#27599;&#19968;&#20010;&#23545;&#35937;&#37117;&#25191;&#34892;<tt class="literal">delete()</tt>&#65292;&#25110;&#32773;                </p></li><li><p>                    &#22312;&#23450;&#20041;&#20851;&#32852;&#23545;&#35937;&#30340;&#26144;&#23556;&#26102;&#65292;&#20351;&#29992;<tt class="literal">cascade="all"</tt>,<tt class="literal">cascade="all-delete-orphan"</tt>&#25110;<tt class="literal">cascade="delete"</tt>&#12290;                </p></li></ul></div><p>            &#24314;&#35758;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#22914;&#26524;&#23376;&#23545;&#35937;&#30340;&#29983;&#21629;&#26399;&#26159;&#32465;&#23450;&#21040;&#29238;&#23545;&#35937;&#30340;&#29983;&#21629;&#26399;&#30340;&#65292;&#36890;&#36807;&#25351;&#23450;<tt class="literal">cascade="all"</tt>&#21487;&#20197;&#25226;&#23427;&#21464;&#25104;&#19968;&#20010;<span class="emphasis"><em>&#33258;&#21160;&#31649;&#29702;&#29983;&#21629;&#21608;&#26399;&#30340;&#23545;&#35937;&#65288;lifecycle object&#65289;</em></span>&#12290;                </p></li><li><p>                    &#21542;&#21017;&#65292;&#24517;&#39035;&#22312;&#24212;&#29992;&#31243;&#24207;&#20195;&#30721;&#20013;&#26126;&#30830;&#22320;&#25191;&#34892;<tt class="literal">save()</tt>&#21644;<tt class="literal">delete()</tt>&#12290;&#22914;&#26524;&#20320;&#24819;&#23569;&#25970;&#19968;&#20123;&#20195;&#30721;&#65292;&#21487;&#20197;&#20351;&#29992;<tt class="literal">cascade="sve-update"</tt>&#65292;&#28982;&#21518;&#21482;&#38656;&#26126;&#30830;&#22320;<tt class="literal">delete()</tt>&#12290;                </p></li></ul></div><p>            &#23545;&#19968;&#31181;&#20851;&#32852;&#65288;&#22810;&#23545;&#19968;&#65292;&#25110;&#32773;&#38598;&#21512;&#65289;&#20351;&#29992;<tt class="literal">cascade="all"</tt>&#26144;&#23556;&#65292;&#23601;&#25226;&#36825;&#31181;&#20851;&#32852;&#26631;&#35760;&#20026;&#19968;&#31181;<tt class="literal">&#29238;/&#23376;&#65288;parent/child&#65289;</tt>&#39118;&#26684;&#30340;&#20851;&#31995;&#65292;&#23545;&#29238;&#23545;&#35937;&#36827;&#34892;&#20445;&#23384;/&#26356;&#26032;/&#21024;&#38500;&#20250;&#23548;&#33268;&#23545;&#65288;&#25152;&#26377;&#65289;&#23376;&#23545;&#35937;&#30340;&#20445;&#23384;/&#26356;&#26032;/&#21024;&#38500;&#12290;&#20294;&#26159;&#36825;&#20010;&#27604;&#21947;&#24182;&#19981;&#26159;&#29305;&#21035;&#30830;&#20999;&#12290;&#22914;&#26524;&#29238;&#23545;&#35937;&#35299;&#38500;&#20102;&#23545;&#26576;&#20010;&#23376;&#23545;&#35937;&#30340;&#20851;&#32852;&#65292;&#37027;&#36825;&#20010;&#23376;&#23545;&#35937;&#23601;<span class="emphasis"><em>&#19981;&#20250;</em></span>&#34987;&#33258;&#21160;&#21024;&#38500;&#20102;&#12290;&#38500;&#38750;&#36825;&#26159;&#19968;&#20010;<tt class="literal">&#19968;&#23545;&#22810;</tt>&#30340;&#20851;&#32852;&#65292;&#24182;&#19988;&#26631;&#26126;&#20102;<tt class="literal">cascade="all-delete-orphan"&#65288;&#25152;&#26377;-&#21024;&#38500;-&#23396;&#20799;&#65289;</tt>&#12290;&#32423;&#32852;&#25805;&#20316;&#30340;&#31934;&#30830;&#35821;&#20041;&#22312;&#19979;&#38754;&#21015;&#20986;:        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#22914;&#26524;&#29238;&#23545;&#35937;&#34987;&#20445;&#23384;&#65292;&#25152;&#26377;&#30340;&#23376;&#23545;&#35937;&#20250;&#34987;&#20256;&#36882;&#21040;<tt class="literal">saveOrUpdate()</tt>&#26041;&#27861;&#21435;&#25191;&#34892;                </p></li><li><p>                    &#22914;&#26524;&#29238;&#23545;&#35937;&#34987;&#20256;&#36882;&#21040;<tt class="literal">update()</tt>&#25110;&#32773;<tt class="literal">saveOrUpdate()</tt>&#65292;&#25152;&#26377;&#30340;&#23376;&#23545;&#35937;&#20250;&#34987;&#20256;&#36882;&#21040;<tt class="literal">saveOrUpdate()</tt>&#26041;&#27861;&#21435;&#25191;&#34892;                </p></li><li><p>                    &#22914;&#26524;&#19968;&#20010;&#20020;&#26102;&#30340;&#23376;&#23545;&#35937;&#34987;&#19968;&#20010;&#25345;&#20037;&#21270;&#30340;&#29238;&#23545;&#35937;&#24341;&#29992;&#20102;&#65292;&#23427;&#20250;&#34987;&#20256;&#36882;&#21040;<tt class="literal">saveOrUpdate()</tt>&#21435;&#25191;&#34892;                </p></li><li><p>                    &#22914;&#26524;&#29238;&#23545;&#35937;&#34987;&#21024;&#38500;&#20102;&#65292;&#25152;&#26377;&#30340;&#23376;&#23545;&#35937;&#23545;&#34987;&#20256;&#36882;&#21040;<tt class="literal">delete()</tt>&#26041;&#27861;&#25191;&#34892;                </p></li><li><p>                    &#22914;&#26524;&#20020;&#26102;&#30340;&#23376;&#23545;&#35937;&#19981;&#20877;&#34987;&#25345;&#20037;&#21270;&#30340;&#29238;&#23545;&#35937;&#24341;&#29992;&#65292;<tt class="literal">&#20160;&#20040;&#37117;&#19981;&#20250;&#21457;&#29983;</tt>&#65288;&#24517;&#35201;&#26102;&#65292;&#31243;&#24207;&#24212;&#35813;&#26126;&#30830;&#30340;&#21024;&#38500;&#36825;&#20010;&#23376;&#23545;&#35937;&#65289;&#65292;&#38500;&#38750;&#22768;&#26126;&#20102;<tt class="literal">cascade="all-delete-orphan"</tt>&#65292;&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#25104;&#20026;&#8220;&#23396;&#20799;&#8221;&#30340;&#23376;&#23545;&#35937;&#20250;&#34987;&#21024;&#38500;&#12290;                </p></li></ul></div><p>            Hibernate&#36824;&#27809;&#26377;&#23436;&#20840;&#23454;&#29616;&#8220;&#36890;&#36807;&#21487;&#35302;&#21450;&#24615;&#20915;&#23450;&#25345;&#20037;&#21270;&#8221;,&#21518;&#32773;&#26263;&#31034;&#20250;&#23545;&#22403;&#22334;&#25910;&#38598;&#36827;&#34892;&#65288;&#25928;&#29575;&#19981;&#39640;&#30340;&#65289;&#25345;&#20037;&#21270;&#12290;&#20294;&#26159;&#65292;&#22240;&#20026;&#24456;&#24191;&#27867;&#30340;&#21628;&#22768;&#65292;Hibernate&#23454;&#29616;&#20102;&#19968;&#31181;&#24847;&#35265;&#65292;&#22914;&#26524;&#19968;&#20010;&#23454;&#20307;&#34987;&#19968;&#20010;&#25345;&#20037;&#21270;&#30340;&#23545;&#35937;&#24341;&#29992;&#65292;&#23427;&#20063;&#20250;&#34987;&#25345;&#20037;&#21270;&#12290;&#27880;&#26126;&#20102;<tt class="literal">cascade="save-update"</tt>&#30340;&#20851;&#32852;&#23601;&#26159;&#25353;&#29031;&#36825;&#31181;&#24605;&#36335;&#36816;&#20316;&#30340;&#12290;&#22914;&#26524;&#20320;&#24076;&#26395;&#22312;&#20320;&#30340;&#25972;&#20010;&#31243;&#24207;&#20013;&#37117;&#36143;&#24443;&#36825;&#20010;&#26041;&#27861;&#65292;&#20320;&#21487;&#20197;&#22312;<tt class="literal">&lt;hibernate-mapping&gt;</tt>&#20803;&#32032;&#30340;<tt class="literal">default-cascade</tt>&#23646;&#24615;&#20013;&#25351;&#23450;&#36825;&#31181;&#32423;&#32852;&#26041;&#24335;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="manipulatingdata-interceptors"></a>9.9.&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,                                 Serializable id,                                 Object[] currentState,                                Object[] previousState,                                String[] propertyNames,                                Type[] types) {        if ( entity instanceof Auditable ) {            updates++;            for ( int i=0; i &lt

⌨️ 快捷键说明

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