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

📄 queryhql.html

📁 图象处理
💻 HTML
📖 第 1 页 / 共 4 页
字号:
            &#35831;&#27880;&#24847;&#65292;&#19978;&#38754;&#20004;&#20010;&#26597;&#35810;&#37117;&#20351;&#29992;&#20102;&#36229;&#36807;&#19968;&#20010;SQL&#30340;<tt class="literal">SELECT</tt>&#12290;&#36825;&#24847;&#21619;&#30528;<tt class="literal">order by</tt>&#23376;&#21477;&#23558;&#19981;&#20250;&#27491;&#30830;&#25490;&#24207;&#12290;&#65288;&#36825;&#20063;&#24847;&#21619;&#30528;&#20320;&#19981;&#33021;&#23545;&#36825;&#20123;&#26597;&#35810;&#20351;&#29992;<tt class="literal">Query.scroll()</tt>&#12290;&#65289;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="queryhql-where"></a>11.7.&nbsp;where&#23376;&#21477;</h2></div></div><div></div></div><p>            <tt class="literal">where</tt>&#23376;&#21477;&#35753;&#20320;&#32553;&#23567;&#20320;&#35201;&#36820;&#22238;&#30340;&#23454;&#20363;&#30340;&#21015;&#34920;&#33539;&#22260;&#12290;        </p><pre class="programlisting">from eg.Cat as cat where cat.name='Fritz'</pre><p>            &#36820;&#22238;&#25152;&#26377;&#21517;&#23383;&#20026;'Fritz'&#30340;<tt class="literal">Cat</tt>&#30340;&#23454;&#20363;&#12290;        </p><pre class="programlisting">select foo from eg.Foo foo, eg.Bar barwhere foo.startDate = bar.date</pre><p>            &#20250;&#36820;&#22238;&#25152;&#26377;&#30340;&#28385;&#36275;&#19979;&#21015;&#26465;&#20214;&#30340;<tt class="literal">Foo</tt>&#23454;&#20363;&#65292;&#23427;&#20204;&#23384;&#22312;&#19968;&#20010;&#23545;&#24212;&#30340;<tt class="literal">bar</tt>&#23454;&#20363;&#65292;&#20854;<tt class="literal">date</tt>&#23646;&#24615;&#19982;<tt class="literal">Foo</tt>&#30340;<tt class="literal">startDate</tt>&#23646;&#24615;&#30456;&#31561;&#12290;&#22797;&#21512;&#36335;&#24452;&#34920;&#36798;&#24335;&#20196;<tt class="literal">where</tt>&#23376;&#21477;&#21464;&#24471;&#26497;&#20026;&#26377;&#21147;&#12290;&#24605;&#32771;&#19979;&#38754;&#30340;&#20363;&#23376;&#65306;        </p><pre class="programlisting">from eg.Cat cat where cat.mate.name is not null</pre><p>            &#36825;&#20010;&#26597;&#35810;&#20250;&#34987;&#32763;&#35793;&#20026;&#24102;&#26377;&#19968;&#20010;&#34920;&#38388;&#65288;inner)join&#30340;SQL&#26597;&#35810;&#12290;&#22914;&#26524;&#20320;&#20889;&#19979;&#31867;&#20284;&#36825;&#26679;&#30340;&#35821;&#21477;&#65306;        </p><pre class="programlisting">from eg.Foo foo  where foo.bar.baz.customer.address.city is not null</pre><p>            &#20320;&#26368;&#32456;&#20250;&#24471;&#21040;&#30340;&#26597;&#35810;&#65292;&#20854;&#23545;&#24212;&#30340;SQL&#38656;&#35201;4&#20010;&#34920;&#38388;&#36830;&#25509;&#12290;        </p><p>            <tt class="literal">=</tt>&#25805;&#20316;&#31526;&#19981;&#20165;&#20165;&#29992;&#20110;&#21028;&#26029;&#23646;&#24615;&#26159;&#21542;&#30456;&#31561;&#65292;&#20063;&#21487;&#20197;&#29992;&#20110;&#23454;&#20363;&#65306;        </p><pre class="programlisting">from eg.Cat cat, eg.Cat rival where cat.mate = rival.mateselect cat, mate from eg.Cat cat, eg.Cat matewhere cat.mate = mate</pre><p>            &#29305;&#21035;&#30340;&#65292;&#23567;&#20889;&#30340;<tt class="literal">id</tt>&#21487;&#20197;&#29992;&#26469;&#34920;&#31034;&#19968;&#20010;&#23545;&#35937;&#30340;&#24799;&#19968;&#26631;&#35782;&#12290;&#65288;&#20320;&#21487;&#20197;&#20351;&#29992;&#23427;&#30340;&#23646;&#24615;&#21517;&#12290;&#65289;        </p><pre class="programlisting">from eg.Cat as cat where cat.id = 123from eg.Cat as cat where cat.mate.id = 69</pre><p>            &#31532;&#20108;&#20010;&#26597;&#35810;&#26159;&#24456;&#39640;&#25928;&#30340;&#12290;&#19981;&#38656;&#35201;&#36827;&#34892;&#34920;&#38388;&#36830;&#25509;&#65281;        </p><p>            &#32452;&#21512;&#30340;&#26631;&#31034;&#31526;&#20063;&#21487;&#20197;&#20351;&#29992;&#12290;&#20551;&#35774;<tt class="literal">Person</tt>&#26377;&#19968;&#20010;&#32452;&#21512;&#26631;&#31034;&#31526;&#65292;&#26159;&#30001;<tt class="literal">country</tt>&#21644;<tt class="literal">medicareNumber</tt>&#32452;&#21512;&#32780;&#25104;&#30340;&#12290;                    </p><pre class="programlisting">from bank.Person personwhere person.id.country = 'AU'     and person.id.medicareNumber = 123456from bank.Account accountwhere account.owner.id.country = 'AU'     and account.owner.id.medicareNumber = 123456</pre><p>            &#21448;&#19968;&#27425;&#65292;&#31532;&#20108;&#20010;&#26597;&#35810;&#19981;&#38656;&#35201;&#34920;&#38388;&#36830;&#25509;&#12290;        </p><p>            &#31867;&#20284;&#30340;&#65292;&#22312;&#23384;&#22312;&#22810;&#24577;&#25345;&#20037;&#21270;&#30340;&#24773;&#20917;&#19979;&#65292;&#29305;&#27530;&#23646;&#24615;<tt class="literal">class</tt>&#29992;&#20110;&#33719;&#21462;&#26576;&#20010;&#23454;&#20363;&#30340;&#36776;&#35782;&#20540;&#12290;&#22312;where&#23376;&#21477;&#20013;&#23884;&#20837;&#30340;Java&#31867;&#21517;&#23558;&#20250;&#36716;&#25442;&#20026;&#23427;&#30340;&#36776;&#35782;&#20540;&#12290;        </p><pre class="programlisting">from eg.Cat cat where cat.class = eg.DomesticCat</pre><p>            &#20320;&#20063;&#21487;&#20197;&#25351;&#23450;&#32452;&#20214;&#65288;&#25110;&#32773;&#26159;&#32452;&#20214;&#30340;&#32452;&#20214;&#65292;&#20381;&#27425;&#31867;&#25512;&#65289;&#25110;&#32773;&#32452;&#21512;&#31867;&#22411;&#20013;&#30340;&#23646;&#24615;&#12290;&#20294;&#26159;&#22312;&#19968;&#20010;&#23384;&#22312;&#36335;&#24452;&#30340;&#34920;&#36798;&#24335;&#20013;&#65292;&#26368;&#21518;&#19981;&#33021;&#20197;&#19968;&#20010;&#32452;&#20214;&#31867;&#22411;&#30340;&#23646;&#24615;&#32467;&#23614;&#12290;&#65288;&#36825;&#37324;&#19981;&#26159;&#25351;&#32452;&#20214;&#30340;&#23646;&#24615;&#65289;&#12290;&#27604;&#22914;&#65292;&#20551;&#33509;<tt class="literal">store.owner</tt>&#36825;&#20010;&#23454;&#20307;&#30340;&#30340;<tt class="literal">address</tt>&#26159;&#19968;&#20010;&#32452;&#20214;        </p><pre class="programlisting">store.owner.address.city    //okaystore.owner.address         //error!</pre><p>        	&#8220;&#20219;&#24847;(any)&#8221;&#31867;&#22411;&#20063;&#26377;&#29305;&#27530;&#30340;<tt class="literal">id</tt>&#23646;&#24615;&#21644;<tt class="literal">class</tt>&#23646;&#24615;&#65292;&#36825;&#21487;&#20197;&#35753;&#25105;&#20204;&#29992;&#19979;&#38754;&#30340;&#24418;&#24335;&#26469;&#34920;&#36798;&#36830;&#25509;&#65288;&#36825;&#37324;<tt class="literal">AuditLog.item</tt>&#26159;&#19968;&#20010;&#23545;&#24212;&#21040;<tt class="literal">&lt;ant&gt;</tt>&#30340;&#23646;&#24615;&#65289;&#12290;        </p><pre class="programlisting">from eg.AuditLog log, eg.Payment payment where log.item.class = 'eg.Payment' and log.item.id = payment.id</pre><p>            &#27880;&#24847;&#19978;&#38754;&#26597;&#35810;&#20013;&#65292;<tt class="literal">log.item.class</tt>&#21644;<tt class="literal">payment.class</tt>&#20250;&#25351;&#21521;&#20004;&#20010;&#20540;&#65292;&#20195;&#34920;&#23436;&#20840;&#19981;&#21516;&#30340;&#25968;&#25454;&#24211;&#23383;&#27573;&#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>11.8.&nbsp;&#34920;&#36798;&#24335;(Expressions)</h2></div></div><div></div></div><p>            <tt class="literal">where</tt>&#23376;&#21477;&#20801;&#35768;&#20986;&#29616;&#30340;&#34920;&#36798;&#24335;&#21253;&#25324;&#20102;&#20320;&#22312;SQL&#20013;&#21487;&#20197;&#20351;&#29992;&#30340;&#22823;&#22810;&#25968;&#24773;&#20917;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#25968;&#23398;&#25805;&#20316;<tt class="literal">+, -, *, /</tt>                                    </p></li><li><p>                   	&#30495;&#20551;&#27604;&#36739;&#25805;&#20316; <tt class="literal">=, &gt;=, &lt;=, &lt;&gt;, !=, like</tt>                </p></li><li><p>                    &#36923;&#36753;&#25805;&#20316; <tt class="literal">and, or, not</tt>                </p></li><li><p>                    &#23383;&#31526;&#20018;&#36830;&#25509; ||                </p></li><li><p>                    SQL&#26631;&#37327;&#65288; scalar&#65289;&#20989;&#25968;&#65292;&#20363;&#22914; <tt class="literal">upper()</tt> &#21644;                    <tt class="literal">lower()</tt>                </p></li><li><p>                    &#27809;&#26377;&#21069;&#32512;&#30340; <tt class="literal">( )</tt>&#34920;&#31034;&#20998;&#32452;                </p></li><li><p>                    <tt class="literal">in</tt>,                    <tt class="literal">between</tt>,                    <tt class="literal">is null</tt>                </p></li><li><p>                    JDBC &#20256;&#20837;&#21442;&#25968;<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 &#25991;&#23383; <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&#30340;<tt class="literal">public static final</tt>&#24120;&#37327;<tt class="literal"> &#27604;&#22914; Color.TABBY</tt>                </p></li></ul></div><p>            <tt class="literal">in</tt> &#21644; <tt class="literal">between</tt> &#21487;&#20197;&#22914;&#19979;&#20363;&#19968;&#26679;&#20351;&#29992;:        </p><pre class="programlisting">from eg.DomesticCat cat where cat.name between 'A' and 'B'from eg.DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )</pre><p>            &#20854;&#21542;&#23450;&#24418;&#24335;&#20026;        </p><pre class="programlisting">from eg.DomesticCat cat where cat.name not between 'A' and 'B'from eg.DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )</pre><p>            &#31867;&#20284;&#30340;&#65292;<tt class="literal">is null</tt>&#21644;<tt class="literal">is not null</tt>&#21487;&#20197;&#29992;&#26469;&#27979;&#35797;null&#20540;&#12290;        </p><p>            &#36890;&#36807;&#22312;Hibernate&#37197;&#32622;&#20013;&#22768;&#26126;HQL&#26597;&#35810;&#30340;&#26367;&#25442;&#26041;&#24335;&#65292;Boolean&#20063;&#26159;&#24456;&#23481;&#26131;&#22312;&#34920;&#36798;&#24335;&#20013;&#20351;&#29992;&#30340;&#65306;        </p><pre class="programlisting">&lt;property name="hibernate.query.substitutions"&gt;true 1, false 0&lt;/property&gt;</pre><p>            &#22312;&#20174;HQL&#32763;&#35793;&#25104;SQL&#30340;&#26102;&#20505;,&#20851;&#38190;&#23383;<tt class="literal">true</tt>&#21644;<tt class="literal">false</tt>&#23601;&#20250;&#34987;&#26367;&#25442;&#25104;<tt class="literal">1</tt>&#21644;<tt class="literal">0</tt>&#12290;        </p><pre class="programlisting">from eg.Cat cat where cat.alive = true</pre><p>            &#20320;&#21487;&#20197;&#29992;&#29305;&#27530;&#23646;&#24615;<tt class="literal">size</tt>&#26469;&#27979;&#35797;&#19968;&#20010;&#38598;&#21512;&#30340;&#38271;&#24230;&#65292;&#25110;&#32773;&#29992;&#29305;&#27530;&#30340;<tt class="literal">size()</tt>&#20989;&#25968;&#20063;&#21487;&#20197;&#12290;        </p><pre class="programlisting">from eg.Cat cat where cat.kittens.size &gt; 0from eg.Cat cat where size(cat.kittens) &gt; 0</pre><p>            &#23545;&#20110;&#25490;&#24207;&#38598;&#21512;&#65292;&#20320;&#21487;&#20197;&#29992;<tt class="literal">minIndex</tt>&#21644;<tt class="literal">maxIndex</tt>&#26469;&#33719;&#21462;&#20854;&#26368;&#22823;&#32034;&#24341;&#20540;&#21644;&#26368;&#23567;&#32034;&#24341;&#20540;&#12290;&#31867;&#20284;&#30340;&#65292;<tt class="literal">minElement</tt> &#21644;<tt class="literal">maxElement</tt> &#21487;&#20197;&#29992;&#26469;&#33719;&#21462;&#38598;&#21512;&#20013;&#26368;&#23567;&#21644;&#26368;&#22823;&#30340;&#20803;&#32032;&#65292;&#21069;&#25552;&#26159;&#24517;&#39035;&#26159;&#22522;&#26412;&#31867;&#22411;&#30340;&#38598;&#21512;&#12290;        </p><pre class="programlisting">from Calendar cal where cal.holidays.maxElement &gt; current date</pre><p>            &#20063;&#26377;&#20989;&#25968;&#30340;&#24418;&#24335;&#65288;&#21644;&#19978;&#38754;&#30340;&#24418;&#24335;&#19981;&#21516;&#65292;&#20989;&#25968;&#24418;&#24335;&#26159;&#22823;&#23567;&#20889;&#19981;&#25935;&#24863;&#30340;&#65289;&#65306;                    </p><pre class="programlisting">from Order order where maxindex(order.items) &gt; 100from Order order where minelement(order.items) &gt; 10000</pre><p>            SQL&#20013;&#30340;<tt class="literal">any, some, all, exists, in</tt>&#21151;&#33021;&#20063;&#26159;&#25903;&#25345;&#30340;&#65292;&#21069;&#25552;&#26159;&#24517;&#39035;&#25226;&#38598;&#21512;&#30340;&#20803;&#32032;&#25110;&#32773;&#32034;&#24341;&#38598;&#20316;&#20026;&#23427;&#20204;&#30340;&#21442;&#25968;&#65288;&#20351;&#29992;<tt class="literal">element</tt>&#21644;<tt class="literal">indices</tt>&#20989;&#25968;&#65289;&#65292;&#25110;&#32773;&#20351;&#29992;&#23376;&#26597;&#35810;&#30340;&#32467;&#26524;&#20316;&#20026;&#21442;&#25968;&#12290;        </p><pre class="programlisting">select mother from eg.Cat as mother, eg.Cat as kitwhere kit in elements(foo.kittens)select p from eg.NameList list, eg.Person pwhere p.name = some elements(list.names)from eg.Cat cat where exists elements(cat.kittens)

⌨️ 快捷键说明

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