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

📄 querycriteria.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
			&#25235;&#21462;&#31574;&#30053;(Fetching strategies)		&#8221;</a>&#21487;&#20197;&#33719;&#24471;&#26356;&#22810;&#20449;&#24687;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="querycriteria-examples"></a>16.6.&nbsp;&#26597;&#35810;&#31034;&#20363;</h2></div></div><div></div></div><p>            <tt class="literal">org.hibernate.criterion.Example</tt>&#31867;&#20801;&#35768;&#20320;&#36890;&#36807;&#19968;&#20010;&#32473;&#23450;&#23454;&#20363;            &#26500;&#24314;&#19968;&#20010;&#26465;&#20214;&#26597;&#35810;&#12290;        </p><pre class="programlisting">Cat cat = new Cat();cat.setSex('F');cat.setColor(Color.BLACK);List results = session.createCriteria(Cat.class)    .add( Example.create(cat) )    .list();</pre><p>           &#29256;&#26412;&#23646;&#24615;&#12289;&#26631;&#35782;&#31526;&#21644;&#20851;&#32852;&#34987;&#24573;&#30053;&#12290;&#40664;&#35748;&#24773;&#20917;&#19979;&#20540;&#20026;null&#30340;&#23646;&#24615;&#23558;&#34987;&#25490;&#38500;&#12290;        </p><p>           &#20320;&#21487;&#20197;&#33258;&#34892;&#35843;&#25972;<tt class="literal">Example</tt>&#20351;&#20043;&#26356;&#23454;&#29992;&#12290;        </p><pre class="programlisting">Example example = Example.create(cat)    .excludeZeroes()           //exclude zero valued properties    .excludeProperty("color")  //exclude the property named "color"    .ignoreCase()              //perform case insensitive string comparisons    .enableLike();             //use like for string comparisonsList results = session.createCriteria(Cat.class)    .add(example)    .list();</pre><p>            &#20320;&#29978;&#33267;&#21487;&#20197;&#20351;&#29992;examples&#22312;&#20851;&#32852;&#23545;&#35937;&#19978;&#25918;&#32622;&#26465;&#20214;&#12290;        </p><pre class="programlisting">List results = session.createCriteria(Cat.class)    .add( Example.create(cat) )    .createCriteria("mate")        .add( Example.create( cat.getMate() ) )    .list();</pre></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="querycriteria-projection"></a>16.7.&nbsp;&#25237;&#24433;(Projections)&#12289;&#32858;&#21512;&#65288;aggregation&#65289;&#21644;&#20998;&#32452;&#65288;grouping&#65289;</h2></div></div><div></div></div><p>            <tt class="literal">org.hibernate.criterion.Projections</tt>&#26159;            <tt class="literal">Projection</tt> &#30340;&#23454;&#20363;&#24037;&#21378;&#12290;&#25105;&#20204;&#36890;&#36807;&#35843;&#29992;            <tt class="literal">setProjection()</tt>&#24212;&#29992;&#25237;&#24433;&#21040;&#19968;&#20010;&#26597;&#35810;&#12290;        </p><pre class="programlisting">List results = session.createCriteria(Cat.class)    .setProjection( Projections.rowCount() )    .add( Restrictions.eq("color", Color.BLACK) )    .list();</pre><pre class="programlisting">List results = session.createCriteria(Cat.class)    .setProjection( Projections.projectionList()        .add( Projections.rowCount() )        .add( Projections.avg("weight") )        .add( Projections.max("weight") )        .add( Projections.groupProperty("color") )    )    .list();</pre><p>            &#22312;&#19968;&#20010;&#26465;&#20214;&#26597;&#35810;&#20013;&#27809;&#26377;&#24517;&#35201;&#26174;&#24335;&#30340;&#20351;&#29992; "group by" &#12290;&#26576;&#20123;&#25237;&#24433;&#31867;&#22411;&#23601;&#26159;&#34987;&#23450;&#20041;&#20026;<span class="emphasis"><em>            &#20998;&#32452;&#25237;&#24433;</em></span>&#65292;&#20182;&#20204;&#20063;&#20986;&#29616;&#22312;SQL&#30340;<tt class="literal">group by</tt>&#23376;&#21477;&#20013;&#12290;        </p><p>            &#20320;&#21487;&#20197;&#36873;&#25321;&#25226;&#19968;&#20010;&#21035;&#21517;&#25351;&#27966;&#32473;&#19968;&#20010;&#25237;&#24433;&#65292;&#36825;&#26679;&#21487;&#20197;&#20351;&#25237;&#24433;&#20540;&#34987;&#32422;&#26463;&#25110;&#25490;&#24207;&#25152;&#24341;&#29992;&#12290;&#19979;&#38754;&#26159;&#20004;&#31181;&#19981;&#21516;&#30340;&#23454;&#29616;&#26041;&#24335;&#65306;        </p><pre class="programlisting">List results = session.createCriteria(Cat.class)    .setProjection( Projections.alias( Projections.groupProperty("color"), "colr" ) )    .addOrder( Order.asc("colr") )    .list();</pre><pre class="programlisting">List results = session.createCriteria(Cat.class)    .setProjection( Projections.groupProperty("color").as("colr") )    .addOrder( Order.asc("colr") )    .list();</pre><p>            <tt class="literal">alias()</tt>&#21644;<tt class="literal">as()</tt>&#26041;&#27861;&#31616;&#20415;&#30340;&#23558;&#19968;&#20010;&#25237;&#24433;&#23454;&#20363;&#21253;&#35013;&#21040;&#21478;&#22806;&#19968;&#20010;            &#21035;&#21517;&#30340;<tt class="literal">Projection</tt>&#23454;&#20363;&#20013;&#12290;&#31616;&#32780;&#35328;&#20043;&#65292;&#24403;&#20320;&#28155;&#21152;&#19968;&#20010;&#25237;&#24433;&#21040;&#19968;&#20010;&#25237;&#24433;&#21015;&#34920;&#20013;&#26102;            &#20320;&#21487;&#20197;&#20026;&#23427;&#25351;&#23450;&#19968;&#20010;&#21035;&#21517;&#65306;        </p><pre class="programlisting">List results = session.createCriteria(Cat.class)    .setProjection( Projections.projectionList()        .add( Projections.rowCount(), "catCountByColor" )        .add( Projections.avg("weight"), "avgWeight" )        .add( Projections.max("weight"), "maxWeight" )        .add( Projections.groupProperty("color"), "color" )    )    .addOrder( Order.desc("catCountByColor") )    .addOrder( Order.desc("avgWeight") )    .list();</pre><pre class="programlisting">List results = session.createCriteria(Domestic.class, "cat")    .createAlias("kittens", "kit")    .setProjection( Projections.projectionList()        .add( Projections.property("cat.name"), "catName" )        .add( Projections.property("kit.name"), "kitName" )    )    .addOrder( Order.asc("catName") )    .addOrder( Order.asc("kitName") )    .list();</pre><p>            &#20320;&#20063;&#21487;&#20197;&#20351;&#29992;<tt class="literal">Property.forName()</tt>&#26469;&#34920;&#31034;&#25237;&#24433;&#65306;        </p><pre class="programlisting">List results = session.createCriteria(Cat.class)    .setProjection( Property.forName("name") )    .add( Property.forName("color").eq(Color.BLACK) )    .list();</pre><pre class="programlisting">List results = session.createCriteria(Cat.class)    .setProjection( Projections.projectionList()        .add( Projections.rowCount().as("catCountByColor") )        .add( Property.forName("weight").avg().as("avgWeight") )        .add( Property.forName("weight").max().as("maxWeight") )        .add( Property.forName("color").group().as("color" )    )    .addOrder( Order.desc("catCountByColor") )    .addOrder( Order.desc("avgWeight") )    .list();</pre></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="querycriteria-detachedqueries"></a>16.8.&nbsp;&#31163;&#32447;(detached)&#26597;&#35810;&#21644;&#23376;&#26597;&#35810;</h2></div></div><div></div></div><p>    		<tt class="literal">DetachedCriteria</tt>&#31867;&#20351;&#20320;&#22312;&#19968;&#20010;session&#33539;&#22260;&#20043;&#22806;&#21019;&#24314;&#19968;&#20010;&#26597;&#35810;&#65292;&#24182;&#19988;&#21487;&#20197;&#20351;&#29992;&#20219;&#24847;&#30340;    		 <tt class="literal">Session</tt>&#26469;&#25191;&#34892;&#23427;&#12290;    	</p><pre class="programlisting">DetachedCriteria query = DetachedCriteria.forClass(Cat.class)    .add( Property.forName("sex").eq('F') );    Session session = ....;Transaction txn = session.beginTransaction();List results = query.getExecutableCriteria(session).setMaxResults(100).list();txn.commit();session.close();</pre><p>			<tt class="literal">DetachedCriteria</tt>&#20063;&#21487;&#20197;&#29992;&#20197;&#34920;&#31034;&#23376;&#26597;&#35810;&#12290;&#26465;&#20214;&#23454;&#20363;&#21253;&#21547;&#23376;&#26597;&#35810;&#21487;&#20197;&#36890;&#36807;			<tt class="literal">Subqueries</tt>&#25110;&#32773;<tt class="literal">Property</tt>&#33719;&#24471;&#12290;		</p><pre class="programlisting">DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)	.setProjection( Property.forName("weight").avg() );session.createCriteria(Cat.class)	.add( Property.forName("weight).gt(avgWeight) )	.list();</pre><pre class="programlisting">DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)	.setProjection( Property.forName("weight") );session.createCriteria(Cat.class)	.add( Subqueries.geAll("weight", weights) )	.list();</pre><p>			&#29978;&#33267;&#30456;&#20114;&#20851;&#32852;&#30340;&#23376;&#26597;&#35810;&#20063;&#26159;&#26377;&#21487;&#33021;&#30340;&#65306;		</p><pre class="programlisting">DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.class, "cat2")	.setProjection( Property.forName("weight").avg() )	.add( Property.forName("cat2.sex").eqProperty("cat.sex") );session.createCriteria(Cat.class, "cat")	.add( Property.forName("weight).gt(avgWeightForSex) )	.list();</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="queryhql.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="querysql.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;15&nbsp;&#31456;&nbsp;HQL: Hibernate&#26597;&#35810;&#35821;&#35328;&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;17&nbsp;&#31456;&nbsp;Native SQL&#26597;&#35810;</td></tr></table></div></body></html>

⌨️ 快捷键说明

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