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

📄 manipulatingdata.html

📁 图象处理
💻 HTML
📖 第 1 页 / 共 5 页
字号:
    pk.getKittens(), "select this.mate where this.color = eg.Color.BLACK");</pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="manipulatingdata-criteria"></a>9.3.5.&nbsp;&#26465;&#20214;&#26597;&#35810;</h3></div></div><div></div></div><p>            HQL&#26497;&#20026;&#24378;&#22823;&#65292;&#20294;&#26159;&#26377;&#20123;&#20154;&#24076;&#26395;&#33021;&#22815;&#21160;&#24577;&#30340;&#20351;&#29992;&#19968;&#31181;&#38754;&#21521;&#23545;&#35937;API&#21019;&#24314;&#26597;&#35810;&#65292;&#32780;&#38750;&#22312;&#20182;&#20204;&#30340;Java&#20195;&#30721;&#20013;&#23884;&#20837;&#23383;&#31526;&#20018;&#12290;&#23545;&#20110;&#37027;&#37096;&#20998;&#20154;&#26469;&#35828;&#65292;Hibernate&#25552;&#20379;&#20102;&#19968;&#31181;&#30452;&#35266;&#30340;<tt class="literal">Criteria</tt>&#26597;&#35810;API&#12290;        </p><pre class="programlisting">Criteria crit = session.createCriteria(Cat.class);crit.add( Expression.eq("color", eg.Color.BLACK) );crit.setMaxResults(10);List cats = crit.list();</pre><p>            &#22914;&#26524;&#20320;&#23545;&#31867;&#20284;&#20110;SQL&#30340;&#35821;&#27861;&#19981;&#26159;&#24863;&#35273;&#24456;&#33298;&#26381;&#30340;&#35805;&#65292;&#29992;&#36825;&#31181;&#26041;&#27861;&#24320;&#22987;&#20351;&#29992;Hibernate&#21487;&#33021;&#26356;&#23481;&#26131;&#12290;&#36825;&#31181;API&#20063;&#27604;HQL&#26356;&#21487;&#25193;&#23637;&#12290;&#31243;&#24207;&#21487;&#20197;&#25552;&#20379;&#23427;&#20204;&#33258;&#24049;&#30340;<tt class="literal">Criterion</tt>&#25509;&#21475;&#30340;&#23454;&#29616;&#12290;        </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="manipulatingdata-nativesql"></a>9.3.6.&nbsp;&#20351;&#29992;&#26412;&#22320;SQL&#30340;&#26597;&#35810;</h3></div></div><div></div></div><p>            &#20320;&#21487;&#20197;&#20351;&#29992;<tt class="literal">createSQLQuery()</tt>&#26041;&#27861;&#65292;&#29992;SQL&#26469;&#34920;&#36798;&#26597;&#35810;&#12290;&#20320;&#24517;&#39035;&#25226;SQL&#21035;&#21517;&#29992;&#22823;&#25324;&#21495;&#21253;&#22260;&#36215;&#26469;&#12290;        </p><pre class="programlisting">List cats = session.createSQLQuery(    "SELECT {cat.*} FROM CAT {cat} WHERE ROWNUM&lt;10",    "cat",    Cat.class).list();</pre><pre class="programlisting">List cats = session.createSQLQuery(    "SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, " +           "{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... " +    "FROM CAT {cat} WHERE ROWNUM&lt;10",    "cat",    Cat.class).list()</pre><p>            &#21644;Hibernate&#26597;&#35810;&#19968;&#26679;&#65292;SQL&#26597;&#35810;&#20063;&#21487;&#20197;&#21253;&#21547;&#21629;&#21517;&#21442;&#25968;&#25110;&#32773;&#39034;&#24207;&#21442;&#25968;&#12290;        </p></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="manipulatingdata-updating"></a>9.4.&nbsp;&#26356;&#26032;&#23545;&#35937;</h2></div></div><div></div></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="manipulatingdata-updating-insession"></a>9.4.1.&nbsp;&#22312;&#21516;&#19968;Session&#20013;&#26356;&#26032;</h3></div></div><div></div></div><p>            <span class="emphasis"><em>&#20107;&#21153;&#20013;&#30340;&#25345;&#20037;&#21270;&#23454;&#20363;</em></span>&#65288;&#23601;&#26159;&#36890;&#36807;<tt class="literal">session</tt>&#35013;&#36733;&#12289;&#20445;&#23384;&#12289;&#21019;&#24314;&#25110;&#32773;&#26597;&#35810;&#20986;&#30340;&#23545;&#35937;&#65289;&#21487;&#20197;&#34987;&#31243;&#24207;&#25805;&#20316;&#65292;&#25152;&#20570;&#30340;&#20219;&#20309;&#20462;&#25913;&#37117;&#20250;&#22312;<tt class="literal">Session</tt><span class="emphasis"><em>&#21516;&#27493;&#65288;flushed&#65289;</em></span>&#30340;&#26102;&#20505;&#34987;&#25345;&#20037;&#21270;&#65288;&#26412;&#31456;&#21518;&#38754;&#20250;&#35814;&#32454;&#35752;&#35770;&#65289;&#12290;&#25152;&#20197;&#26368;&#30452;&#25509;&#30340;&#26356;&#25913;&#19968;&#20010;&#23545;&#35937;&#30340;&#26041;&#27861;&#23601;&#26159;<tt class="literal">load()</tt>&#23427;&#65292;&#20445;&#25345;<tt class="literal">Session</tt>&#25171;&#24320;&#65292;&#28982;&#21518;&#30452;&#25509;&#20462;&#25913;&#21363;&#21487;&#65306;        </p><pre class="programlisting">DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long(69) );cat.setName("PK");sess.flush();  // changes to cat are automatically detected and persisted</pre><p>            &#26377;&#20123;&#26102;&#20505;&#36825;&#31181;&#32534;&#31243;&#27169;&#24335;&#26174;&#24471;&#25928;&#29575;&#19981;&#39640;&#65292;&#22240;&#20026;&#23427;&#38656;&#35201;&#22312;&#21516;&#19968;&#20010;session&#20013;&#20808;&#20351;&#29992;SQL <tt class="literal">SELECT</tt>(&#26469;&#35013;&#36733;&#23545;&#35937;),&#21448;&#26377;&#19968;&#20010;SQL <tt class="literal">UPDATE</tt>&#65288;&#26469;&#25226;&#20462;&#25913;&#30340;&#29366;&#24577;&#20889;&#22238;&#65289;&#12290;&#22240;&#27492;&#65292;Hibernate&#25552;&#20379;&#20102;&#21478;&#19968;&#31181;&#26041;&#24335;&#12290;        </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="manipulatingdata-updating-detached"></a>9.4.2.&nbsp;&#26356;&#26032;&#20174;session&#33073;&#31163;&#30340;&#23545;&#35937;</h3></div></div><div></div></div><p>            &#24456;&#22810;&#31243;&#24207;&#38656;&#35201;&#22312;&#19968;&#20010;&#20107;&#21153;&#20013;&#33719;&#21462;&#23545;&#35937;&#65292;&#28982;&#21518;&#21457;&#36865;&#21040;&#30028;&#38754;&#23618;&#21435;&#25805;&#20316;&#65292;&#29992;&#19968;&#20010;&#26032;&#30340;&#20107;&#21153;&#26469;&#20445;&#23384;&#20462;&#25913;&#12290;&#65288;&#22312;&#39640;&#21516;&#27493;&#35775;&#38382;&#30340;&#29615;&#22659;&#20013;&#20351;&#29992;&#36825;&#31181;&#26041;&#24335;&#65292;&#32463;&#24120;&#20351;&#29992;&#38468;&#24102;&#29256;&#26412;&#30340;&#25968;&#25454;&#26469;&#20445;&#35777;&#20107;&#21153;&#29420;&#31435;&#24615;&#12290;&#65289;&#36825;&#31181;&#26041;&#27861;&#38656;&#35201;&#21644;&#19978;&#19968;&#33410;&#25152;&#25551;&#36848;&#30340;&#30053;&#24494;&#19981;&#21516;&#30340;&#32534;&#31243;&#27169;&#22411;&#12290;Hibernate&#25903;&#25345;&#36825;&#31181;&#27169;&#22411;&#65292;&#22240;&#20026;&#23427;&#25552;&#20379;&#20102;<tt class="literal">Session.update()</tt>&#26041;&#27861;&#12290;        </p><pre class="programlisting">// in the first sessionCat cat = (Cat) firstSession.load(Cat.class, catId);Cat potentialMate = new Cat();firstSession.save(potentialMate);// in a higher tier of the applicationcat.setMate(potentialMate);// later, in a new sessionsecondSession.update(cat);  // update catsecondSession.update(mate); // update mate</pre><p>            &#22914;&#26524;&#25317;&#26377;<tt class="literal">catId</tt>&#26631;&#35782;&#31526;&#30340;<tt class="literal">Cat</tt>&#22312;&#35797;&#22270;update&#23427;&#20043;&#21069;&#24050;&#32463;&#34987;<tt class="literal">secondSession</tt>&#35013;&#36733;&#20102;&#65292;&#20250;&#25243;&#20986;&#19968;&#20010;&#24322;&#24120;&#12290;        </p><p>            &#23545;&#20110;&#32473;&#23450;&#30340;&#20020;&#26102;&#23454;&#20363;&#65292;<span class="emphasis"><em>&#24403;&#19988;&#20165;&#24403;</em></span> &#23427;&#20204;&#35302;&#21450;&#30340;&#20854;&#20182;&#20020;&#26102;&#23454;&#20363;&#38656;&#35201;&#20445;&#23384;&#30340;&#26102;&#20505;&#65292;            &#24212;&#29992;&#31243;&#24207;&#24212;&#35813;&#23545;&#23427;&#20204;&#20998;&#21035;&#21508;&#33258;&#20351;&#29992;<tt class="literal">update()</tt>&#12290;&#65288;&#33258;&#21160;&#31649;&#29702;&#29983;&#21629;&#21608;&#26399;&#30340;&#23545;&#35937;(lifecycle object)&#38500;&#22806;&#65292;&#21518;&#38754;&#20250;&#35752;&#35770;&#21040;&#12290;&#65289;        </p><p>            Hibernate&#29992;&#25143;&#26366;&#32463;&#35201;&#27714;&#26377;&#19968;&#20010;&#36890;&#29992;&#30340;&#26041;&#27861;&#65292;&#21487;&#20197;&#20026;&#26032;&#24314;&#30340;&#20020;&#26102;&#23454;&#20363;&#29983;&#25104;&#26631;&#35782;&#31526;&#24182;&#20445;&#23384;&#65292;&#25110;&#32773;&#20445;&#23384;&#24050;&#32463;&#23384;&#22312;&#26631;&#35782;&#31526;&#30340;&#20020;&#26102;&#23454;&#20363;&#30340;&#25913;&#21160;&#12290;<tt class="literal">saveOrUpdate()</tt>&#26041;&#27861;&#23601;&#26159;&#29992;&#26469;&#25552;&#20379;&#36825;&#20010;&#21151;&#33021;&#30340;&#12290;                    </p><p>            Hibernate&#36890;&#36807;&#23545;&#35937;&#30340;&#26631;&#35782;&#31526;&#30340;&#20540;&#65288;&#25110;version,&#25110;timestamp&#26102;&#38388;&#25139;)&#26469;&#20998;&#36776;&#36825;&#26159;&#19968;&#20010;&#8220;&#26032;&#8221;(&#26410;&#20445;&#23384;&#36807;&#30340;&#65289;&#23454;&#20363;&#65292;&#36824;&#26159;&#19968;&#20010;&#8220;&#24050;&#23384;&#22312;&#8221;&#65288;&#24050;&#32463;&#20445;&#23384;&#25110;&#32773;&#20174;&#20808;&#21069;&#30340;session&#20013;&#35013;&#36733;&#30340;&#65289;&#30340;&#23454;&#20363;&#12290;<tt class="literal">id</tt>&#26144;&#23556;&#20013;&#30340;<tt class="literal">unsaved-value</tt>(&#25110;<tt class="literal">&lt;version&gt;</tt>,&#25110; <tt class="literal">&lt;timestamp&gt;</tt>)&#29992;&#26469;&#25351;&#23450;&#21738;&#20010;&#20540;&#34987;&#29992;&#20110;&#34920;&#31034;&#8220;&#26032;&#8221;&#23454;&#20363;&#12290;        </p><pre class="programlisting">&lt;id name="id" type="long" column="uid" unsaved-value="null"&gt;    &lt;generator class="hilo"/&gt;&lt;/id&gt;</pre><p>            <tt class="literal">unsaved-value</tt>&#20801;&#35768;&#30340;&#21462;&#20540;&#21253;&#25324;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                <tt class="literal">any</tt> - always save &#27704;&#36828;&#20445;&#23384;                </p></li><li><p>                <tt class="literal">none</tt> - always update &#27704;&#36828;&#26356;&#26032;                </p></li><li><p>                <tt class="literal">null</tt> -  &#24403;&#26631;&#35782;&#31526;&#26159;&#31354;&#30340;&#26102;&#20505;&#20445;&#23384;&#65288;&#40664;&#35748;&#24773;&#20917;&#65289;                </p></li><li><p>                valid identifier value (&#21512;&#27861;&#30340;&#26631;&#35782;&#31526;&#20540;)- &#24403;&#26631;&#35782;&#31526;&#26159;null&#25110;&#32773;&#36825;&#20010;&#32473;&#23450;&#30340;&#20540;&#26102;&#20445;&#23384;                </p></li><li><p>                <tt class="literal">undefined</tt> - &#23545;&#20110;<tt class="literal">version</tt> &#25110; <tt class="literal">timestamp</tt>&#26469;&#35828;&#30340;&#40664;&#35748;&#20540;&#12290;&#27492;&#26102;&#20351;&#29992;&#26631;&#35782;&#31526;&#26816;&#26597;&#12290;(&#21407;&#25991;: the default for <tt class="literal">version</tt> or <tt class="literal">timestamp</tt>, then identifier check is used.&#21442;&#35265;&#19979;&#25991;&#26377;&#36827;&#19968;&#27493;&#25551;&#36848;.)                </p></li></ul></div><pre class="programlisting">// in the first sessionCat cat = (Cat) firstSession.load(Cat.class, catID);// in a higher tier of the applicationCat mate = new Cat();cat.setMate(mate);// later, in a new sessionsecondSession.saveOrUpdate(cat);   // update existing state (cat has a non-null id)secondSession.saveOrUpdate(mate);  // save the new instance (mate has a null id)</pre><p>            <tt class="literal">saveOrUpdate()</tt>&#30340;&#29992;&#27861;&#21644;&#35821;&#20041;&#30475;&#26469;&#23545;&#21021;&#23398;&#32773;&#26469;&#35828;&#23481;&#26131;&#36896;&#25104;&#22256;&#24785;&#12290;&#39318;&#20808;&#65292;&#22914;&#26524;&#20320;&#36824;&#27809;&#26377;&#35797;&#22270;&#22312;&#21478;&#19968;&#20010;&#26032;session&#20013;&#20351;&#29992;&#26469;&#33258;&#21407;session&#30340;&#23454;&#20363;&#65292;&#20320;&#26681;&#26412;&#23601;&#19981;&#38656;&#35201;&#20351;&#29992;<tt class="literal">update()</tt>&#25110;&#32773;<tt class="literal">saveOrUpdate()</tt>&#26041;&#27861;&#12290;&#26377;&#19968;&#20123;&#31243;&#24207;&#23436;&#20840;&#19981;&#38656;&#35201;&#20351;&#29992;&#36825;&#20123;&#26041;&#27861;&#12290;        </p><p>           	&#36890;&#24120;&#65292;<tt class="literal">update()</tt>&#25110;<tt class="literal">saveorUpdate()</tt>&#26041;&#27861;&#22312;&#19979;&#21015;&#24773;&#24418;&#19979;&#20351;&#29992;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#31243;&#24207;&#22312;&#21069;&#38754;&#30340;session&#20013;&#35013;&#36733;&#20102;&#23545;&#35937;                </p></li><li><p>                    &#23545;&#35937;&#34987;&#20256;&#36882;&#21040;UI&#65288;&#30028;&#38754;&#65289;&#23618;                </p></li><li><p>                    &#23545;&#35813;&#23545;&#35937;&#36827;&#34892;&#20102;&#19968;&#20123;&#20462;&#25913;                </p></li><li><p>                    &#23545;&#35937;&#34987;&#20256;&#36882;&#22238;&#19994;&#21153;&#23618;                </p></li><li><p>                    &#24212;&#29992;&#31243;&#24207;&#22312;&#31532;&#20108;&#20010;session&#20013;&#35843;&#29992;<tt class="literal">update()</tt>&#20445;&#23384;&#20462;&#25913;                </p></li></ul></div><p>            <tt class="literal">saveOrUpdate()</tt>&#23436;&#25104;&#20102;&#22914;&#19979;&#24037;&#20316;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#22914;&#26524;&#23545;&#35937;&#24050;&#32463;&#22312;&#36825;&#20010;session&#20013;&#25345;&#20037;&#21270;&#36807;&#20102;&#65292;&#20160;&#20040;&#37117;&#19981;&#29992;&#20570;                </p></li><li><p>                    &#22914;&#26524;&#23545;&#35937;&#27809;&#26377;&#26631;&#35782;&#20540;&#65292;&#35843;&#29992;<tt class="literal">save()</tt>&#26469;&#20445;&#23384;&#23427;                </p></li><li><p>                    &#22914;&#26524;&#23545;&#35937;&#30340;&#26631;&#35782;&#20540;&#19982;<tt class="literal">unsaved-value</tt>&#20013;&#30340;&#26465;&#20214;&#21305;&#37197;&#65292;&#35843;&#29992;<tt class="literal">save()</tt>&#26469;&#20445;&#23384;&#23427;                </p></li><li><p>                    &#22914;&#26524;&#23545;&#35937;&#20351;&#29992;&#20102;&#29256;&#26412;(<tt class="literal">version</tt>&#25110;<tt class="literal">timestamp</tt>),&#37027;&#20040;&#38500;&#38750;&#35774;&#32622;<tt class="literal">unsaved-value="undefined"</tt>,&#29256;&#26412;&#26816;&#26597;&#20250;&#21457;&#29983;&#22312;&#26631;&#35782;&#31526;&#26816;&#26597;&#20043;&#21069;.                </p></li><li><p>                    &#22914;&#26524;&#36825;&#20010;session&#20013;&#26377;&#21478;&#22806;&#19968;&#20010;&#23545;&#35937;&#20855;&#26377;&#21516;&#26679;&#30340;&#26631;&#35782;&#31526;&#65292;&#25243;&#20986;&#19968;&#20010;&#24322;&#24120;

⌨️ 快捷键说明

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