锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
List results = session.createCriteria(Cat.class) .setProjection( Projections.rowCount() ) .add( Restrictions.eq("color", Color.BLACK) ) .list();
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();
鍦ㄤ竴涓潯浠舵煡璇腑娌℃湁蹇呰鏄懼紡鐨勪嬌鐢?"group by" 銆傛煇浜涙姇褰辯被鍨嬪氨鏄瀹氫箟涓?span class="emphasis"> 鍒嗙粍鎶曞獎錛屼粬浠篃鍑虹幇鍦⊿QL鐨?tt class="literal">group by瀛愬彞涓?/p>
浣犲彲浠ラ夋嫨鎶婁竴涓埆鍚嶆寚媧劇粰涓涓姇褰憋紝榪欐牱鍙互浣挎姇褰卞艱綰︽潫鎴栨帓搴忔墍寮曠敤銆備笅闈㈡槸涓ょ涓嶅悓鐨勫疄鐜版柟寮忥細
List results = session.createCriteria(Cat.class) .setProjection( Projections.alias( Projections.groupProperty("color"), "colr" ) ) .addOrder( Order.asc("colr") ) .list();
List results = session.createCriteria(Cat.class) .setProjection( Projections.groupProperty("color").as("colr") ) .addOrder( Order.asc("colr") ) .list();
alias()鍜?tt class="literal">as()鏂規硶綆渚跨殑灝嗕竴涓姇褰卞疄渚嬪寘瑁呭埌鍙﹀涓涓?鍒悕鐨?tt class="literal">Projection瀹炰緥涓傜畝鑰岃█涔嬶紝褰撲綘娣誨姞涓涓姇褰卞埌涓涓姇褰卞垪琛ㄤ腑鏃?浣犲彲浠ヤ負瀹冩寚瀹氫竴涓埆鍚嶏細
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();
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();
浣犱篃鍙互浣跨敤Property.forName()鏉ヨ〃紺烘姇褰憋細
List results = session.createCriteria(Cat.class) .setProjection( Property.forName("name") ) .add( Property.forName("color").eq(Color.BLACK) ) .list();
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();