Criteria Query閫氳繃闈㈠悜瀵硅薄鍖栫殑璁捐錛屽皢鏁版嵁鏌ヨ鏉′歡灝佽涓轟竴涓璞°傜畝鍗曟潵
璁詫紝Criteria Query鍙互鐪嬩綔鏄紶緇?/span>SQL鐨勫璞″寲琛ㄧず錛屽錛?span lang="EN-US">
Criteria criteria = session.createCriteria(User.class);
criteria.add(Expression.eq("name","Erica"));
criteria.add(Expression.eq("sex",new Integer(1)));
榪欓噷鐨?/span>criteria 瀹炰緥瀹為檯涓婃槸SQL “Select * from t_user where
name=’Erica’ and sex=<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1" unitname="”"></chmetcnv>1”鐨勫皝瑁咃紙鎴戜滑鍙互鎵撳紑Hibernate 鐨?/span>show_sql 閫夐」錛?span lang="EN-US">
浠ヨ瀵?/span>Hibernate鍦ㄨ繍琛屾湡鐢熸垚鐨?/span>SQL璇彞錛夈?span lang="EN-US">
Hibernate 鍦ㄨ繍琛屾湡浼氭牴鎹?/span>Criteria 涓寚瀹氱殑鏌ヨ鏉′歡錛堜篃灝辨槸涓婇潰浠g爜涓氳繃
criteria.add鏂規硶娣誨姞鐨勬煡璇㈣〃杈懼紡錛夌敓鎴愮浉搴旂殑SQL璇彞銆?span lang="EN-US">
榪欑鏂瑰紡鐨勭壒鐐規槸姣旇緝絎﹀悎Java 紼嬪簭鍛樼殑緙栫爜涔犳儻錛屽茍涓斿叿澶囨竻鏅扮殑鍙鎬с傛鍥?span lang="EN-US">
涓烘錛屼笉灝?/span>ORM瀹炵幇涓兘鎻愪緵浜嗙被浼肩殑瀹炵幇鏈哄埗錛堝Apache OJB錛夈?span lang="EN-US">
瀵逛簬Hibernate鐨勫垵瀛﹁咃紝鐗瑰埆鏄SQL浜嗚В鏈夐檺鐨勭▼搴忓憳鑰岃█錛?/span>Criteria Query
鏃犵枒鏄笂鎵嬬殑鏋佷匠閫斿緞錛岀浉瀵?/span>HQL錛?/span>Criteria Query鎻愪緵浜嗘洿鏄撲簬鐞嗚В鐨勬煡璇㈡墜孌碉紝鍊?span lang="EN-US">
鍔?/span>IDE鐨?/span>Coding Assist鏈哄埗錛?/span>Criteria鐨勪嬌鐢ㄥ嚑涔庝笉鐢ㄥお澶氱殑瀛︿範銆?span lang="EN-US">
Criteria 鏌ヨ琛ㄨ揪寮?span lang="EN-US">
Criteria 鏈韓鍙槸涓涓煡璇㈠鍣紝鍏蜂綋鐨勬煡璇㈡潯浠墮渶瑕侀氳繃Criteria.add
鏂規硶娣誨姞鍒?/span>Criteria瀹炰緥涓?span lang="EN-US">
濡傚墠渚嬫墍紺猴紝Expression 瀵硅薄鍏蜂綋鎻忚堪浜嗘煡璇㈡潯浠躲傞拡瀵?/span>SQL 璇硶錛?span lang="EN-US">
Expression鎻愪緵浜嗗搴旂殑鏌ヨ闄愬畾鏈哄埗錛屽寘鎷細
鏂規硶 鎻忚堪
Expression.eq 瀵瑰簲SQL“field = value”琛ㄨ揪寮忋?span lang="EN-US">
濡?/span>Expression.eq("name","Erica")
Expression.allEq 鍙傛暟涓轟竴涓?/span>Map瀵硅薄錛屽叾涓寘鍚簡澶氫釜灞炴э紞鍊煎
搴斿叧緋匯傜浉褰撲簬澶氫釜Expression.eq鍏崇郴鐨勫彔鍔犮?span lang="EN-US">
Expression.gt 瀵瑰簲SQL涓殑 “field > value ” 琛ㄨ揪寮?span lang="EN-US">
Expression.ge 瀵瑰簲SQL涓殑 “field >= value” 琛ㄨ揪寮?span lang="EN-US">
Expression.lt 瀵瑰簲SQL涓殑 “field < value” 琛ㄨ揪寮?span lang="EN-US">
Expression.le 瀵瑰簲SQL涓殑 “field <= value” 琛ㄨ揪寮?span lang="EN-US">
Expression.between 瀵瑰簲SQL涓殑 “between” 琛ㄨ揪寮?span lang="EN-US">
濡備笅闈㈢殑琛ㄨ揪寮忚〃紺哄勾榫勶紙age錛変綅浜?/span>13鍒?/span>50鍖?/span>闂村唴銆?span lang="EN-US">
Expression.between("age",new
Integer(13),new Integer(50));
琛ㄨ揪寮?span lang="EN-US">
Expression.in 瀵瑰簲SQL涓殑 ”field in …” 琛ㄨ揪寮?span lang="EN-US">
Expression.eqProperty 鐢ㄤ簬姣旇緝涓や釜灞炴т箣闂寸殑鍊鹼紝瀵瑰簲SQL涓殑“field = field”銆?span lang="EN-US">
濡傦細
Expression.eqProperty(
"TUser.groupID",
"TGroup.id"
);
Expression.gtProperty 鐢ㄤ簬姣旇緝涓や釜灞炴т箣闂寸殑鍊鹼紝瀵瑰簲SQL涓殑“field > field”銆?span lang="EN-US">
Expression.geProperty 鐢ㄤ簬姣旇緝涓や釜灞炴т箣闂寸殑鍊鹼紝瀵瑰簲SQL涓殑“field >= field”銆?span lang="EN-US">
Expression.ltProperty 鐢ㄤ簬姣旇緝涓や釜灞炴т箣闂寸殑鍊鹼紝瀵瑰簲SQL涓殑“field < field”銆?span lang="EN-US">
Expression.leProperty 鐢ㄤ簬姣旇緝涓や釜灞炴т箣闂寸殑鍊鹼紝瀵瑰簲SQL涓殑“field <= field”銆?span lang="EN-US">
Expression.and and鍏崇郴緇勫悎銆?span lang="EN-US">
濡傦細
Expression.and(
Expression.eq("name","Erica"),
Expression.eq(
"sex",
new Integer(1)
)
);
Expression.or or鍏崇郴緇勫悎銆?span lang="EN-US">
濡傦細
Expression.or(
Expression.eq("name","Erica"),
Expression.eq("name","Emma")
);
Expression.sql 浣滀負琛ュ厖錛屾湰鏂規硶鎻愪緵浜嗗師鐢?/span>SQL璇硶鐨勬敮鎸併傛垜
浠彲浠ラ氳繃榪欎釜鏂規硶鐩存帴閫氳繃SQL璇彞闄愬畾鏌ヨ鏉′歡銆?span lang="EN-US">
涓嬮潰鐨勪唬鐮佽繑鍥炴墍鏈夊悕縐頒互“Erica”璧峰鐨勮褰曪細
Expression.sql(
“lower({alias}.name) like lower(?)”,
"Erica%",
Hibernate.STRING
);
鍏朵腑鐨?#8220;{alias}”灝嗙敱Hibernate鍦ㄨ繍琛屾湡浣?span lang="EN-US">
鐢ㄥ綋鍓嶅叧鑱旂殑POJO鍒悕鏇挎崲銆?span lang="EN-US">
娉ㄦ剰Expression 鍚勬柟娉曚腑鐨勫睘鎬у悕鍙傛暟錛堝Express.eq涓殑絎竴涓弬鏁幫級錛岃繖閲?span lang="EN-US">
鎵璋撳睘鎬у悕鏄?/span>POJO涓搴斿疄闄呭簱琛ㄥ瓧孌電殑灞炴у悕錛堝ぇ灝忓啓鏁忔劅錛夛紝鑰岄潪搴撹〃涓殑瀹?span lang="EN-US">
闄呭瓧孌靛悕縐般?span lang="EN-US">
Criteria 楂樼駭鐗規?span lang="EN-US">
闄愬畾榪斿洖鐨勮褰曡寖鍥?span lang="EN-US">
閫氳繃criteria. setFirstResult/setMaxResults 鏂規硶鍙互闄愬埗涓嬈℃煡璇㈣繑鍥?span lang="EN-US">
鐨勮褰曡寖鍥?/span>:
Criteria criteria = session.createCriteria(TUser.class);
//闄愬畾鏌ヨ榪斿洖媯绱㈢粨鏋滀腑錛屼粠絎竴鐧炬潯緇撴灉寮濮嬬殑20鏉¤褰?span lang="EN-US">
criteria.setFirstResult(100);
criteria.setMaxResults(20);
瀵規煡璇㈢粨鏋滆繘琛屾帓搴?span lang="EN-US">
//鏌ヨ鎵鏈?/span>groupId=2鐨勮褰?span lang="EN-US">
//騫跺垎鍒寜鐓у鍚?/span>(欏哄簭)鍜?/span>groupId錛堥嗗簭錛夋帓搴?span lang="EN-US">
Criteria criteria = session.createCriteria(TUser.class);
criteria.add(Expression.eq("groupId",new Integer(2)));
criteria.addOrder(Order.asc("name"));
criteria.addOrder(Order.desc("groupId"));
Criteria浣滀負涓縐嶅璞″寲鐨勬煡璇㈠皝瑁呮ā寮忥紝涓嶈繃鐢變簬Hibernate鍦ㄥ疄鐜拌繃紼嬩腑灝嗙簿鍔?span lang="EN-US">
鏇村姞闆嗕腑鍦?/span>HQL鏌ヨ璇█涓婏紝鍥犳Criteria鐨勫姛鑳藉疄鐜拌繕娌″仛鍒板敖鍠勫敖緹庯紙榪欑偣涓婏紝OJB
鐨?/span>Criteria 瀹炵幇鍊掓槸鍊煎緱鍊熼壌錛夛紝鍥犳錛屽湪瀹為檯寮鍙戜腑錛屽緩璁繕鏄噰鐢?/span>Hibernate 瀹?span lang="EN-US">
鏂規帹鑽愮殑鏌ヨ灝佽妯″紡錛?/span>HQL銆?/span>