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

📄 queryhql.html

📁 关于hibernate的中文文档 关于hibernate的中文文档 关于hibernate的中文文档 关于hibernate的中文文档
💻 HTML
📖 第 1 页 / 共 5 页
字号:
            &#25110;&#23384;&#25918;&#22312;&#19968;&#20010;<tt class="literal">List</tt>&#23545;&#35937;&#20013;,        </p><pre class="programlisting">select new list(mother, offspr, mate.name)from DomesticCat as mother    inner join mother.mate as mate    left outer join mother.kittens as offspr</pre><p>            &#20063;&#21487;&#33021;&#30452;&#25509;&#36820;&#22238;&#19968;&#20010;&#23454;&#38469;&#30340;&#31867;&#22411;&#23433;&#20840;&#30340;Java&#23545;&#35937;,        </p><pre class="programlisting">select new Family(mother, mate, offspr)from DomesticCat as mother    join mother.mate as mate    left join mother.kittens as offspr</pre><p>            &#20551;&#35774;&#31867;<tt class="literal">Family</tt>&#26377;&#19968;&#20010;&#21512;&#36866;&#30340;&#26500;&#36896;&#20989;&#25968;.        </p><p>            &#20320;&#21487;&#20197;&#20351;&#29992;&#20851;&#38190;&#23383;<tt class="literal">as</tt>&#32473;&#8220;&#34987;&#36873;&#25321;&#20102;&#30340;&#34920;&#36798;&#24335;&#8221;&#25351;&#27966;&#21035;&#21517;:        </p><pre class="programlisting">select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as nfrom Cat cat</pre><p>            &#36825;&#31181;&#20570;&#27861;&#22312;&#19982;&#23376;&#21477;<tt class="literal">select new map</tt>&#19968;&#36215;&#20351;&#29992;&#26102;&#26368;&#26377;&#29992;:        </p><pre class="programlisting">select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )from Cat cat</pre><p>            &#35813;&#26597;&#35810;&#36820;&#22238;&#20102;&#19968;&#20010;<tt class="literal">Map</tt>&#30340;&#23545;&#35937;&#65292;&#20869;&#23481;&#26159;&#21035;&#21517;&#19982;&#34987;&#36873;&#25321;&#30340;&#20540;&#32452;&#25104;&#30340;&#21517;-&#20540;&#26144;&#23556;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="queryhql-aggregation"></a>14.6.&nbsp;&#32858;&#38598;&#20989;&#25968;</h2></div></div><div></div></div><p>            HQL&#26597;&#35810;&#29978;&#33267;&#21487;&#20197;&#36820;&#22238;&#20316;&#29992;&#20110;&#23646;&#24615;&#20043;&#19978;&#30340;&#32858;&#38598;&#20989;&#25968;&#30340;&#35745;&#31639;&#32467;&#26524;:        </p><pre class="programlisting">select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)from Cat cat</pre><p>            &#21463;&#25903;&#25345;&#30340;&#32858;&#38598;&#20989;&#25968;&#22914;&#19979;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    <tt class="literal">avg(...), sum(...), min(...), max(...)</tt>                </p></li><li><p>                    <tt class="literal">count(*)</tt>                </p></li><li><p>                    <tt class="literal">count(...), count(distinct ...), count(all...)</tt>                </p></li></ul></div><p>            &#20320;&#21487;&#20197;&#22312;&#36873;&#25321;&#23376;&#21477;&#20013;&#20351;&#29992;&#25968;&#23398;&#25805;&#20316;&#31526;&#12289;&#36830;&#25509;&#20197;&#21450;&#32463;&#36807;&#39564;&#35777;&#30340;SQL&#20989;&#25968;&#65306;        </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>14.7.&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>14.8.&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;

⌨️ 快捷键说明

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