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

📄 queryhql.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 4 页
字号:
        </p><pre class="programlisting">select cat.weight + sum(kitten.weight) from Cat cat     join cat.kittens kittengroup by cat.id, cat.weight</pre><pre class="programlisting">select firstName||' '||initial||' '||upper(lastName) from Person</pre><p>            &#20851;&#38190;&#23383;<tt class="literal">distinct</tt>&#19982;<tt class="literal">all</tt> &#20063;&#21487;&#20197;&#20351;&#29992;&#65292;&#23427;&#20204;&#20855;&#26377;&#19982;SQL&#30456;&#21516;&#30340;&#35821;&#20041;.        </p><pre class="programlisting">select distinct cat.name from Cat catselect count(distinct cat.name), count(cat) from Cat cat</pre></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="queryhql-polymorphism"></a>15.6.&nbsp;&#22810;&#24577;&#26597;&#35810;</h2></div></div><div></div></div><p>            &#19968;&#20010;&#22914;&#19979;&#30340;&#26597;&#35810;&#35821;&#21477;:        </p><pre class="programlisting">from Cat as cat</pre><p>            &#19981;&#20165;&#36820;&#22238;<tt class="literal">Cat</tt>&#31867;&#30340;&#23454;&#20363;, &#20063;&#21516;&#26102;&#36820;&#22238;&#23376;&#31867;            <tt class="literal">DomesticCat</tt>&#30340;&#23454;&#20363;. Hibernate &#21487;&#20197;&#22312;<tt class="literal">from</tt>&#23376;&#21477;&#20013;&#25351;&#23450;<span class="emphasis"><em>&#20219;&#20309;</em></span>             Java &#31867;&#25110;&#25509;&#21475;. &#26597;&#35810;&#20250;&#36820;&#22238;&#32487;&#25215;&#20102;&#35813;&#31867;&#30340;&#25152;&#26377;&#25345;&#20037;&#21270;&#23376;&#31867;            &#30340;&#23454;&#20363;&#25110;&#36820;&#22238;&#22768;&#26126;&#20102;&#35813;&#25509;&#21475;&#30340;&#25152;&#26377;&#25345;&#20037;&#21270;&#31867;&#30340;&#23454;&#20363;&#12290;&#19979;&#38754;&#30340;&#26597;&#35810;&#35821;&#21477;&#36820;&#22238;&#25152;&#26377;&#30340;&#34987;&#25345;&#20037;&#21270;&#30340;&#23545;&#35937;&#65306;               </p><pre class="programlisting">from java.lang.Object o</pre><p>            &#25509;&#21475;<tt class="literal">Named</tt> &#21487;&#33021;&#34987;&#21508;&#31181;&#21508;&#26679;&#30340;&#25345;&#20037;&#21270;&#31867;&#22768;&#26126;&#65306;        </p><pre class="programlisting">from Named n, Named m where n.name = m.name</pre><p>            &#27880;&#24847;&#65292;&#26368;&#21518;&#30340;&#20004;&#20010;&#26597;&#35810;&#23558;&#38656;&#35201;&#36229;&#36807;&#19968;&#20010;&#30340;SQL <tt class="literal">SELECT</tt>.&#36825;&#34920;&#26126;<tt class="literal">order by</tt>&#23376;&#21477;            &#27809;&#26377;&#23545;&#25972;&#20010;&#32467;&#26524;&#38598;&#36827;&#34892;&#27491;&#30830;&#30340;&#25490;&#24207;.            (&#36825;&#20063;&#35828;&#26126;&#20320;&#19981;&#33021;&#23545;&#36825;&#26679;&#30340;&#26597;&#35810;&#20351;&#29992;<tt class="literal">Query.scroll()</tt>&#26041;&#27861;.)        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="queryhql-where"></a>15.7.&nbsp;where&#23376;&#21477;</h2></div></div><div></div></div><p>            <tt class="literal">where</tt>&#23376;&#21477;&#20801;&#35768;&#20320;&#23558;&#36820;&#22238;&#30340;&#23454;&#20363;&#21015;&#34920;&#30340;&#33539;&#22260;&#32553;&#23567;.            &#22914;&#26524;&#27809;&#26377;&#25351;&#23450;&#21035;&#21517;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#23646;&#24615;&#21517;&#26469;&#30452;&#25509;&#24341;&#29992;&#23646;&#24615;:        </p><pre class="programlisting">from Cat where name='Fritz'</pre><p>        	&#22914;&#26524;&#25351;&#27966;&#20102;&#21035;&#21517;&#65292;&#38656;&#35201;&#20351;&#29992;&#23436;&#25972;&#30340;&#23646;&#24615;&#21517;:        </p><pre class="programlisting">from Cat as cat where cat.name='Fritz'</pre><p>            &#36820;&#22238;&#21517;&#20026;&#65288;&#23646;&#24615;name&#31561;&#20110;&#65289;'Fritz'&#30340;<tt class="literal">Cat</tt>&#31867;&#30340;&#23454;&#20363;&#12290;         </p><pre class="programlisting">select foo from Foo foo, Bar barwhere foo.startDate = bar.date</pre><p>            &#23558;&#36820;&#22238;&#25152;&#26377;&#28385;&#36275;&#19979;&#38754;&#26465;&#20214;&#30340;<tt class="literal">Foo</tt>&#31867;&#30340;&#23454;&#20363;&#65306;            &#23384;&#22312;&#22914;&#19979;&#30340;<tt class="literal">bar</tt>&#30340;&#19968;&#20010;&#23454;&#20363;&#65292;&#20854;<tt class="literal">date</tt>&#23646;&#24615;&#31561;&#20110;            <tt class="literal">Foo</tt>&#30340;<tt class="literal">startDate</tt>&#23646;&#24615;&#12290;            &#22797;&#21512;&#36335;&#24452;&#34920;&#36798;&#24335;&#20351;&#24471;<tt class="literal">where</tt>&#23376;&#21477;&#38750;&#24120;&#30340;&#24378;&#22823;&#65292;&#32771;&#34385;&#22914;&#19979;&#24773;&#20917;&#65306;        </p><pre class="programlisting">from Cat cat where cat.mate.name is not null</pre><p>            &#35813;&#26597;&#35810;&#23558;&#34987;&#32763;&#35793;&#25104;&#20026;&#19968;&#20010;&#21547;&#26377;&#34920;&#36830;&#25509;&#65288;&#20869;&#36830;&#25509;&#65289;&#30340;SQL&#26597;&#35810;&#12290;&#22914;&#26524;&#20320;&#25171;&#31639;&#20889;&#20687;&#36825;&#26679;&#30340;&#26597;&#35810;&#35821;&#21477;        </p><pre class="programlisting">from Foo foo  where foo.bar.baz.customer.address.city is not null</pre><p>            &#22312;SQL&#20013;&#65292;&#20320;&#20026;&#36798;&#27492;&#30446;&#30340;&#23558;&#38656;&#35201;&#36827;&#34892;&#19968;&#20010;&#22235;&#34920;&#36830;&#25509;&#30340;&#26597;&#35810;&#12290;        </p><p>            <tt class="literal">=</tt>&#36816;&#31639;&#31526;&#19981;&#20165;&#21487;&#20197;&#34987;&#29992;&#26469;&#27604;&#36739;&#23646;&#24615;&#30340;&#20540;&#65292;&#20063;&#21487;&#20197;&#29992;&#26469;&#27604;&#36739;&#23454;&#20363;&#65306;        </p><pre class="programlisting">from Cat cat, Cat rival where cat.mate = rival.mate</pre><pre class="programlisting">select cat, mate from Cat cat, Cat matewhere cat.mate = mate</pre><p>            &#29305;&#27530;&#23646;&#24615;&#65288;&#23567;&#20889;&#65289;<tt class="literal">id</tt>&#21487;&#20197;&#29992;&#26469;&#34920;&#31034;&#19968;&#20010;&#23545;&#35937;&#30340;&#21807;&#19968;&#30340;&#26631;&#35782;&#31526;&#12290;&#65288;&#20320;&#20063;&#21487;&#20197;&#20351;&#29992;&#35813;&#23545;&#35937;&#30340;&#23646;&#24615;&#21517;&#12290;&#65289;        </p><pre class="programlisting">from Cat as cat where cat.id = 123from Cat as cat where cat.mate.id = 69</pre><p>            &#31532;&#20108;&#20010;&#26597;&#35810;&#26159;&#26377;&#25928;&#30340;&#12290;&#27492;&#26102;&#19981;&#38656;&#35201;&#36827;&#34892;&#34920;&#36830;&#25509;&#65281;        </p><p>            &#21516;&#26679;&#20063;&#21487;&#20197;&#20351;&#29992;&#22797;&#21512;&#26631;&#35782;&#31526;&#12290;&#27604;&#22914;<tt class="literal">Person</tt>&#31867;&#26377;&#19968;&#20010;&#22797;&#21512;&#26631;&#35782;&#31526;&#65292;&#23427;&#30001;<tt class="literal">country</tt>&#23646;&#24615;             &#19982;<tt class="literal">medicareNumber</tt>&#23646;&#24615;&#32452;&#25104;&#12290;        </p><pre class="programlisting">from bank.Person personwhere person.id.country = 'AU'     and person.id.medicareNumber = 123456</pre><pre class="programlisting">from bank.Account accountwhere account.owner.id.country = 'AU'     and account.owner.id.medicareNumber = 123456</pre><p>            &#31532;&#20108;&#20010;&#26597;&#35810;&#20063;&#19981;&#38656;&#35201;&#36827;&#34892;&#34920;&#36830;&#25509;&#12290;        </p><p>            &#21516;&#26679;&#30340;&#65292;&#29305;&#27530;&#23646;&#24615;<tt class="literal">class</tt>&#22312;&#36827;&#34892;&#22810;&#24577;&#25345;&#20037;&#21270;&#30340;&#24773;&#20917;&#19979;&#34987;&#29992;&#26469;&#23384;&#21462;&#19968;&#20010;&#23454;&#20363;&#30340;&#37492;&#21035;&#20540;&#65288;discriminator value&#65289;&#12290;            &#19968;&#20010;&#23884;&#20837;&#21040;where&#23376;&#21477;&#20013;&#30340;Java&#31867;&#30340;&#21517;&#23383;&#23558;&#34987;&#36716;&#25442;&#20026;&#35813;&#31867;&#30340;&#37492;&#21035;&#20540;&#12290;        </p><pre class="programlisting">from Cat cat where cat.class = DomesticCat</pre><p>            &#20320;&#20063;&#21487;&#20197;&#22768;&#26126;&#19968;&#20010;&#23646;&#24615;&#30340;&#31867;&#22411;&#26159;&#32452;&#20214;&#25110;&#32773;&#22797;&#21512;&#29992;&#25143;&#31867;&#22411;&#65288;&#20197;&#21450;&#30001;&#32452;&#20214;&#26500;&#25104;&#30340;&#32452;&#20214;&#31561;&#31561;&#65289;&#12290;&#27704;&#36828;&#19981;&#35201;&#23581;&#35797;&#20351;&#29992;&#20197;&#32452;&#20214;&#31867;&#22411;&#26469;&#32467;&#23614;&#30340;&#36335;&#24452;&#34920;&#36798;&#24335;&#65288;path-expression&#65289;            &#65288;&#19982;&#27492;&#30456;&#21453;&#65292;&#20320;&#24212;&#24403;&#20351;&#29992;&#32452;&#20214;&#30340;&#19968;&#20010;&#23646;&#24615;&#26469;&#32467;&#23614;&#65289;&#12290;            &#20030;&#20363;&#26469;&#35828;&#65292;&#22914;&#26524;<tt class="literal">store.owner</tt>&#21547;&#26377;&#19968;&#20010;&#21253;&#21547;&#20102;&#32452;&#20214;&#30340;&#23454;&#20307;<tt class="literal">address</tt>        </p><pre class="programlisting">store.owner.address.city    // &#27491;&#30830;store.owner.address         // &#38169;&#35823;!</pre><p>            &#19968;&#20010;&#8220;&#20219;&#24847;&#8221;&#31867;&#22411;&#26377;&#20004;&#20010;&#29305;&#27530;&#30340;&#23646;&#24615;<tt class="literal">id</tt>&#21644;<tt class="literal">class</tt>,            &#26469;&#20801;&#35768;&#25105;&#20204;&#25353;&#29031;&#19979;&#38754;&#30340;&#26041;&#24335;&#34920;&#36798;&#19968;&#20010;&#36830;&#25509;&#65288;<tt class="literal">AuditLog.item</tt>            &#26159;&#19968;&#20010;&#23646;&#24615;&#65292;&#35813;&#23646;&#24615;&#34987;&#26144;&#23556;&#20026;<tt class="literal">&lt;any&gt;</tt>&#65289;&#12290;        </p><pre class="programlisting">from AuditLog log, Payment payment where log.item.class = 'Payment' and log.item.id = payment.id</pre><p>            &#27880;&#24847;&#65292;&#22312;&#19978;&#38754;&#30340;&#26597;&#35810;&#19982;&#21477;&#20013;&#65292;<tt class="literal">log.item.class</tt> &#21644; <tt class="literal">payment.class</tt>            &#23558;&#28041;&#21450;&#21040;&#23436;&#20840;&#19981;&#21516;&#30340;&#25968;&#25454;&#24211;&#20013;&#30340;&#21015;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="queryhql-expressions"></a>15.8.&nbsp;&#34920;&#36798;&#24335;</h2></div></div><div></div></div><p>            &#22312;<tt class="literal">where</tt>&#23376;&#21477;&#20013;&#20801;&#35768;&#20351;&#29992;&#30340;&#34920;&#36798;&#24335;&#21253;&#25324;            &#22823;&#22810;&#25968;&#20320;&#21487;&#20197;&#22312;SQL&#20351;&#29992;&#30340;&#34920;&#36798;&#24335;&#31181;&#31867;:        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#25968;&#23398;&#36816;&#31639;&#31526;<tt class="literal">+, -, *, /</tt>                </p></li><li><p>                    &#20108;&#36827;&#21046;&#27604;&#36739;&#36816;&#31639;&#31526;<tt class="literal">=, &gt;=, &lt;=, &lt;&gt;, !=, like</tt>                </p></li><li><p>                    &#36923;&#36753;&#36816;&#31639;&#31526;<tt class="literal">and, or, not</tt>                </p></li><li><p>                    <tt class="literal">in</tt>,                    <tt class="literal">not in</tt>,                    <tt class="literal">between</tt>,                    <tt class="literal">is null</tt>,                    <tt class="literal">is not null</tt>,                    <tt class="literal">is empty</tt>,                    <tt class="literal">is not empty</tt>,                    <tt class="literal">member of</tt> and                     <tt class="literal">not member of</tt>                </p></li><li><p>                	"&#31616;&#21333;&#30340;" case, <tt class="literal">case ... when ... then ... else ... end</tt>,&#21644;                    "&#25628;&#32034;" case, <tt class="literal">case when ... then ... else ... end</tt>                 </p></li><li><p>                    &#23383;&#31526;&#20018;&#36830;&#25509;&#31526;<tt class="literal">...||...</tt> or <tt class="literal">concat(...,...)</tt>                </p></li><li><p>                    <tt class="literal">current_date()</tt>, <tt class="literal">current_time()</tt>,                    <tt class="literal">current_timestamp()</tt>                </p></li><li><p>					<tt class="literal">second(...)</tt>, <tt class="literal">minute(...)</tt>, 					<tt class="literal">hour(...)</tt>, <tt class="literal">day(...)</tt>, 					<tt class="literal">month(...)</tt>, <tt class="literal">year(...)</tt>,                </p></li><li><p>                    EJB-QL 3.0&#23450;&#20041;&#30340;&#20219;&#20309;&#20989;&#25968;&#25110;&#25805;&#20316;&#65306;<tt class="literal">substring(), trim(),                    lower(), upper(), length(), locate(), abs(), sqrt(), bit_length()</tt>                </p></li><li><p>                    <tt class="literal">coalesce()</tt> &#21644; <tt class="literal">nullif()</tt>                </p></li><li><p>                    <tt class="literal">cast(... as ...)</tt>, &#20854;&#31532;&#20108;&#20010;&#21442;&#25968;&#26159;&#26576;Hibernate&#31867;&#22411;&#30340;&#21517;&#23383;&#65292;&#20197;&#21450;<tt class="literal">extract(... from ...)</tt>&#65292;&#21482;&#35201;ANSI                     <tt class="literal">cast()</tt> &#21644; <tt class="literal">extract()</tt> &#34987;&#24213;&#23618;&#25968;&#25454;&#24211;&#25903;&#25345;                </p></li><li><p>                &#20219;&#20309;&#25968;&#25454;&#24211;&#25903;&#25345;&#30340;SQL&#26631;&#37327;&#20989;&#25968;&#65292;&#27604;&#22914;<tt class="literal">sign()</tt>,                     <tt class="literal">trunc()</tt>, <tt class="literal">rtrim()</tt>, <tt class="literal">sin()</tt>                </p></li><li><p>                    JDBC&#21442;&#25968;&#20256;&#20837; <tt class="literal">?</tt>                </p></li><li><p>                    &#21629;&#21517;&#21442;&#25968;<tt class="literal">:name</tt>, <tt class="literal">:start_date</tt>, <tt class="literal">:x1</tt>                </p></li><li><p>                    SQL &#30452;&#25509;&#24120;&#37327; <tt class="literal">'foo'</tt>, <tt class="literal">69</tt>, <tt class="literal">'1970-01-01 10:00:01.0'</tt>                </p></li><li><p>                    Java <tt class="literal">public static final</tt> &#31867;&#22411;&#30340;&#24120;&#37327; <tt class="literal">eg.Color.TABBY</tt>                </p></li></ul></div><p>            &#20851;&#38190;&#23383;<tt class="literal">in</tt>&#19982;<tt class="literal">between</tt>&#21487;&#25353;&#22914;&#19979;&#26041;&#27861;&#20351;&#29992;:        </p><pre class="programlisting">from DomesticCat cat where cat.name between 'A' and 'B'</pre><pre class="programlisting">from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )</pre><p>

⌨️ 快捷键说明

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