querysql.html

来自「是一个中文的Hibernate库文档」· HTML 代码 · 共 244 行 · 第 1/2 页

HTML
244
字号
    &lt;return alias="emp" class="Employment"&gt;        &lt;return-property name="employee" column="EMPLOYEE"/&gt;        &lt;return-property name="employer" column="EMPLOYER"/&gt;                    &lt;return-property name="startDate" column="STARTDATE"/&gt;        &lt;return-property name="endDate" column="ENDDATE"/&gt;                    &lt;return-property name="regionCode" column="REGIONCODE"/&gt;                    &lt;return-property name="id" column="EID"/&gt;                                &lt;return-property name="salary"&gt;             &lt;return-column name="VALUE"/&gt;            &lt;return-column name="CURRENCY"/&gt;                    &lt;/return-property&gt;    &lt;/return&gt;    { ? = call selectAllEmployments() }&lt;/sql-query&gt;</pre><p>             </p><p>			  &#27880;&#24847;&#23384;&#20648;&#36807;&#31243;&#24403;&#21069;&#20165;&#20165;&#36820;&#22238;&#26631;&#37327;&#21644;&#23454;&#20307;.&#29616;&#22312;&#19981;&#25903;&#25345;<tt class="literal">&lt;return-join&gt;</tt>&#21644;<tt class="literal">&lt;load-collection&gt;</tt>			               </p><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="querysql-limits-storedprocedures"></a>17.3.2.1.&nbsp;&#20351;&#29992;&#23384;&#20648;&#36807;&#31243;&#30340;&#35268;&#21017;&#21644;&#38480;&#21046;</h4></div></div><div></div></div><p>				   &#20026;&#20102;&#22312;Hibernate&#20013;&#20351;&#29992;&#23384;&#20648;&#36807;&#31243;,&#20320;&#24517;&#39035;&#36981;&#24490;&#19968;&#20123;&#35268;&#21017;.&#19981;&#36981;&#24490;&#36825;&#20123;&#35268;&#21017;&#30340;&#23384;&#20648;&#36807;&#31243;&#23558;&#19981;&#21487;&#29992;.&#22914;&#26524;&#20320;&#20173;&#28982;&#24819;&#35201;&#20351;&#29992;&#20182;&#20204;,				   &#20320;&#24517;&#39035;&#36890;&#36807;<tt class="literal">session.connection()</tt>&#26469;&#25191;&#34892;&#20182;&#20204;.&#36825;&#20123;&#35268;&#21017;&#38024;&#23545;&#20110;&#19981;&#21516;&#30340;&#25968;&#25454;&#24211;.&#22240;&#20026;&#25968;&#25454;&#24211;				   &#25552;&#20379;&#21830;&#26377;&#21508;&#31181;&#19981;&#21516;&#30340;&#23384;&#20648;&#36807;&#31243;&#35821;&#27861;&#21644;&#35821;&#20041;.               </p><p>                   &#23545;&#23384;&#20648;&#36807;&#31243;&#36827;&#34892;&#30340;&#26597;&#35810;&#26080;&#27861;&#20351;&#29992;<tt class="literal">setFirstResult()/setMaxResults()</tt>&#36827;&#34892;&#20998;&#39029;&#12290;               </p><p>				   &#23545;&#20110;Oracle&#26377;&#22914;&#19979;&#35268;&#21017;:               </p><div class="itemizedlist"><ul type="disc" compact><li><p>    				   &#23384;&#20648;&#36807;&#31243;&#24517;&#39035;&#36820;&#22238;&#19968;&#20010;&#32467;&#26524;&#38598;.&#23427;&#36890;&#36807;&#36820;&#22238;SYS_REFCURSOR&#23454;&#29616;(&#22312;Oracle9&#25110;10),&#22312;Oracle&#37324;&#20320;&#38656;&#35201;&#23450;&#20041;&#19968;&#20010;<tt class="literal">REF CURSOR</tt>				   &#31867;&#22411;               </p></li><li><p>				   &#25512;&#33616;&#30340;&#26684;&#24335;&#26159; <tt class="literal">{ ? = call procName(&lt;parameters&gt;) }</tt> &#25110;                   <tt class="literal">{ ? = call procName }</tt>(&#36825;&#26356;&#20687;&#26159;Oracle&#35268;&#21017;&#32780;&#19981;&#26159;Hibernate&#35268;&#21017;)               </p></li></ul></div><p>                   				   &#23545;&#20110;Sybase&#25110;&#32773;MS SQL server&#26377;&#22914;&#19979;&#35268;&#21017;:               </p><div class="itemizedlist"><ul type="disc" compact><li><p>    				   &#23384;&#20648;&#36807;&#31243;&#24517;&#39035;&#36820;&#22238;&#19968;&#20010;&#32467;&#26524;&#38598;&#12290;.&#27880;&#24847;&#36825;&#20123;servers&#21487;&#33021;&#36820;&#22238;&#22810;&#20010;&#32467;&#26524;&#38598;&#20197;&#21450;&#26356;&#26032;&#30340;&#25968;&#30446;.Hibernate&#23558;&#21462;&#20986;&#31532;&#19968;&#26465;&#32467;&#26524;&#38598;&#20316;&#20026;&#23427;&#30340;&#36820;&#22238;&#20540;&#65292;				   &#20854;&#20182;&#23558;&#34987;&#20002;&#24323;&#12290;               </p></li><li><p>    				   &#22914;&#26524;&#20320;&#33021;&#22815;&#22312;&#23384;&#20648;&#36807;&#31243;&#37324;&#35774;&#23450;<tt class="literal">SET NOCOUNT ON</tt>&#65292;&#36825;&#21487;&#33021;&#20250;&#25928;&#29575;&#26356;&#39640;&#65292;&#20294;&#36825;&#19981;&#26159;&#24517;&#38656;&#30340;&#12290;               </p></li></ul></div></div></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="querysql-cud"></a>17.4.&nbsp;&#23450;&#21046;SQL&#29992;&#26469;create&#65292;update&#21644;delete</h2></div></div><div></div></div><p>			Hibernate3&#33021;&#22815;&#20351;&#29992;&#23450;&#21046;&#30340;SQL&#35821;&#21477;&#26469;&#25191;&#34892;create,update&#21644;delete&#25805;&#20316;&#12290;&#22312;Hibernate&#20013;&#65292;&#25345;&#20037;&#21270;&#30340;&#31867;&#21644;&#38598;&#21512;&#24050;&#32463;			&#21253;&#21547;&#20102;&#19968;&#22871;&#37197;&#32622;&#26399;&#20135;&#29983;&#30340;&#35821;&#21477;(insertsql, deletesql, updatesql&#31561;&#31561;)&#65292;&#36825;&#20123;&#26144;&#23556;&#26631;&#35760; <tt class="literal">&lt;sql-insert&gt;</tt>, 			<tt class="literal">&lt;sql-delete&gt;</tt>, and <tt class="literal">&lt;sql-update&gt;</tt>&#37325;&#36733;&#20102;			&#36825;&#20123;&#35821;&#21477;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id"&gt;        &lt;generator class="increment"/&gt;    &lt;/id&gt;    &lt;property name="name" not-null="true"/&gt;    &lt;sql-insert&gt;INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )&lt;/sql-insert&gt;    &lt;sql-update&gt;UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?&lt;/sql-update&gt;    &lt;sql-delete&gt;DELETE FROM PERSON WHERE ID=?&lt;/sql-delete&gt;&lt;/class&gt;</pre><p>			&#36825;&#20123;SQL&#30452;&#25509;&#22312;&#20320;&#30340;&#25968;&#25454;&#24211;&#37324;&#25191;&#34892;&#65292;&#25152;&#20197;&#20320;&#21487;&#20197;&#33258;&#30001;&#30340;&#20351;&#29992;&#20320;&#21916;&#27426;&#30340;&#20219;&#24847;&#35821;&#27861;&#12290;&#20294;&#22914;&#26524;&#20320;&#20351;&#29992;&#25968;&#25454;&#24211;&#29305;&#23450;&#30340;&#35821;&#27861;&#65292;			&#36825;&#24403;&#28982;&#20250;&#38477;&#20302;&#20320;&#26144;&#23556;&#30340;&#21487;&#31227;&#26893;&#24615;&#12290;        </p><p>			&#22914;&#26524;&#35774;&#23450;<tt class="literal">callable</tt>&#65292;&#21017;&#33021;&#22815;&#25903;&#25345;&#23384;&#20648;&#36807;&#31243;&#20102;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id"&gt;        &lt;generator class="increment"/&gt;    &lt;/id&gt;    &lt;property name="name" not-null="true"/&gt;    &lt;sql-insert callable="true"&gt;{call createPerson (?, ?)}&lt;/sql-insert&gt;    &lt;sql-delete callable="true"&gt;{? = call deletePerson (?)}&lt;/sql-delete&gt;    &lt;sql-update callable="true"&gt;{? = call updatePerson (?, ?)}&lt;/sql-update&gt;&lt;/class&gt;</pre><p>		  &#21442;&#25968;&#30340;&#20301;&#32622;&#39034;&#24207;&#26159;&#38750;&#24120;&#37325;&#35201;&#30340;&#65292;&#20182;&#20204;&#24517;&#39035;&#21644;Hibernate&#25152;&#26399;&#24453;&#30340;&#39034;&#24207;&#30456;&#21516;&#12290;        </p><p>		  &#20320;&#33021;&#22815;&#36890;&#36807;&#35774;&#23450;&#26085;&#24535;&#35843;&#35797;&#32423;&#21035;&#20026;<tt class="literal">org.hiberante.persister.entity</tt>,&#26469;&#26597;&#30475;Hibernate&#25152;&#26399;&#24453;&#30340;&#39034;&#24207;&#12290;&#22312;&#36825;&#20010;&#32423;&#21035;&#19979;&#65292;		  Hibernate&#23558;&#20250;&#25171;&#21360;&#20986;create,update&#21644;delete&#23454;&#20307;&#30340;&#38745;&#24577;SQL&#12290;&#22914;&#26524;&#24819;&#30475;&#21040;&#39044;&#24819;&#20013;&#30340;&#39034;&#24207;&#12290;&#35760;&#24471;&#19981;&#35201;&#23558;&#23450;&#21046;SQL&#21253;&#21547;&#22312;&#26144;&#23556;&#25991;&#20214;&#37324;&#65292;		  &#22240;&#20026;&#20182;&#20204;&#20250;&#37325;&#36733;Hibernate&#29983;&#25104;&#30340;&#38745;&#24577;SQL&#12290;        </p><p>			&#22312;&#22823;&#22810;&#25968;&#24773;&#20917;&#19979;(&#26368;&#22909;&#36825;&#20040;&#20570;)&#65292;&#23384;&#20648;&#36807;&#31243;&#38656;&#35201;&#36820;&#22238;&#25554;&#20837;/&#26356;&#26032;/&#21024;&#38500;&#30340;&#34892;&#25968;&#65292;&#22240;&#20026;Hibernate&#23545;&#35821;&#21477;&#30340;&#25104;&#21151;&#25191;&#34892;&#26377;&#20123;&#36816;&#34892;&#26102;&#30340;&#26816;&#26597;&#12290;			Hibernate&#24120;&#20250;&#25226;&#36827;&#34892;CUD&#25805;&#20316;&#30340;&#35821;&#21477;&#30340;&#31532;&#19968;&#20010;&#21442;&#25968;&#27880;&#20876;&#20026;&#19968;&#20010;&#25968;&#20540;&#22411;&#36755;&#20986;&#21442;&#25968;&#12290;        </p><pre class="programlisting">CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN VARCHAR2)    RETURN NUMBER ISBEGIN    update PERSON    set        NAME = uname,    where        ID = uid;    return SQL%ROWCOUNT;END updatePerson;</pre></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="querysql-load"></a>17.5.&nbsp;&#23450;&#21046;&#35013;&#36733;SQL</h2></div></div><div></div></div><p>			&#20320;&#21487;&#33021;&#38656;&#35201;&#22768;&#26126;&#20320;&#33258;&#24049;&#30340;SQL(&#25110;HQL)&#26469;&#35013;&#36733;&#23454;&#20307;        </p><pre class="programlisting">&lt;sql-query name="person"&gt;    &lt;return alias="p" class="Person" lock-mode="upgrade"/&gt;    SELECT NAME AS {p.name}, ID AS {p.id} FROM PERSON WHERE ID=? FOR UPDATE&lt;/sql-query&gt;</pre><p>			&#36825;&#21482;&#26159;&#19968;&#20010;&#21069;&#38754;&#35752;&#35770;&#36807;&#30340;&#21629;&#21517;&#26597;&#35810;&#22768;&#26126;&#65292;&#20320;&#21487;&#20197;&#22312;&#31867;&#26144;&#23556;&#37324;&#24341;&#29992;&#36825;&#20010;&#21629;&#21517;&#26597;&#35810;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id"&gt;        &lt;generator class="increment"/&gt;    &lt;/id&gt;    &lt;property name="name" not-null="true"/&gt;    &lt;loader query-ref="person"/&gt;&lt;/class&gt;</pre><p>		    &#36825;&#20063;&#21487;&#20197;&#29992;&#20110;&#23384;&#20648;&#36807;&#31243;        </p><p>			TODO: &#26410;&#23436;&#25104;&#30340;&#20363;&#23376;        </p><pre class="programlisting">&lt;sql-query name="organizationEmployments"&gt;    &lt;load-collection alias="empcol" role="Organization.employments"/&gt;    SELECT {empcol.*}    FROM EMPLOYMENT empcol    WHERE EMPLOYER = :id    ORDER BY STARTDATE ASC, EMPLOYEE ASC&lt;/sql-query&gt;&lt;sql-query name="organizationCurrentEmployments"&gt;    &lt;return alias="emp" class="Employment"/&gt;    &lt;synchronize table="EMPLOYMENT"/&gt;    SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},        STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},        REGIONCODE as {emp.regionCode}, ID AS {emp.id}    FROM EMPLOYMENT    WHERE EMPLOYER = :id AND ENDDATE IS NULL    ORDER BY STARTDATE ASC&lt;/sql-query&gt;</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="querycriteria.html">&#19978;&#19968;&#39029;</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">&#19978;&#19968;&#32423;</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="filters.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;16&nbsp;&#31456;&nbsp;    &#26465;&#20214;&#26597;&#35810;(Criteria Queries)    &nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">&#36215;&#22987;&#39029;</a></td><td width="40%" align="right" valign="top">&nbsp;&#31532;&nbsp;18&nbsp;&#31456;&nbsp;&#36807;&#28388;&#25968;&#25454;</td></tr></table></div></body></html>

⌨️ 快捷键说明

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