Restrictions用法

  1. 方法说明

方法

说明

Restrictions.eq

Restrictions.ne

Restrictions.allEq

<>

利用Map来进行多个等于的限制

Restrictions.gt

Restrictions.ge

>=

Restrictions.lt

Restrictions.le

<=

Restrictions.between

BETWEEN

Restrictions.like

LIKE

Restrictions.in

in

Restrictions.and

and

Restrictions.or

or

Restrictions.sqlRestriction

用SQL限定查询

2,QBC常用限定方法

Restrictions.eq --> equal,等于.

Restrictions.ne --> not-equals,不等于

Restrictions.allEq --> 参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restrictions.eq的效果

Restrictions.gt --> great-than > 大于

Restrictions.ge --> great-equal >= 大于等于

Restrictions.lt --> less-than, < 小于

Restrictions.le --> less-equal <= 小于等于

Restrictions.between --> 对应SQL的between子句

Restrictions.like --> 对应SQL的LIKE子句

Restrictions.in --> 对应SQL的in子句

Restrictions.and --> and 关系

Restrictions.or --> or 关系

Restrictions.isNull --> 判断属性是否为空,为空则返回true

Restrictions.isNotNull --> 与isNull相反

Restrictions.sqlRestriction --> SQL限定的查询

Order.asc --> 根据传入的字段进行升序排序

Order.desc --> 根据传入的字段进行降序排序

MatchMode.EXACT --> 字符串精确匹配.相当于"like 'value'"

MatchMode.ANYWHERE --> 字符串在中间匹配.相当于"like '%value%'"

MatchMode.START --> 字符串在最前面的位置.相当于"like 'value%'"

MatchMode.END --> 字符串在最后面的位置.相当于"like '%value'"

例子:

 
  1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.Set;
  6. import java.util.TreeSet;
  7. import org.hibernate.Criteria;
  8. import org.hibernate.Hibernate;
  9. import org.hibernate.criterion.MatchMode;
  10. import org.hibernate.criterion.Order;
  11. import org.hibernate.criterion.Restrictions;
  12. import com.happy.dao.BaseHibernateDAO;
  13. import com.happy.entity.AwardNums;
  14. import com.happy.test.util.HandleList;
  15. public class Restriction extends BaseHibernateDAO {
  16. public static void main(String[] args) {
  17. Restriction query = new Restriction();
  18. query.query();
  19. }
  20. @SuppressWarnings("unchecked")
  21. public void queryAlias() {
  22. Criteria criteria = getSession().createCriteria(AwardNums.class);
  23. // 获取别名:eg:this
  24. System.out.println(criteria.getAlias());
  25. HandleList.print(criteria.list());
  26. }
  27. @SuppressWarnings("unchecked")
  28. public void queryOrder() {
  29. Criteria criteria = getSession().createCriteria(AwardNums.class);
  30. criteria.addOrder(Order.desc("id"));
  31. HandleList.print(criteria.list());
  32. }
  33. @SuppressWarnings("unchecked")
  34. public void queryBetween() {
  35. Criteria criteria = getSession().createCriteria(AwardNums.class);
  36. // 第一个参数是属性,第一个是小的数值,第三个是大的数值
  37. criteria.add(Restrictions.between("id", 17720820, 17720830));
  38. HandleList.print(criteria.list());
  39. }
  40. @SuppressWarnings("unchecked")
  41. public void queryIdEq() {
  42. Criteria criteria = getSession().createCriteria(AwardNums.class);
  43. // id=17720820
  44. criteria.add(Restrictions.idEq(17720820));
  45. HandleList.print(criteria.list());
  46. }
  47. @SuppressWarnings("unchecked")
  48. public void queryIlike() {
  49. Criteria criteria = getSession().createCriteria(AwardNums.class);
  50. // 忽略大小写,05结束的
  51. criteria.add(Restrictions.ilike("numbers", "05", MatchMode.END));
  52. HandleList.print(criteria.list());
  53. }
  54. @SuppressWarnings("unchecked")
  55. public void queryLike() {
  56. Criteria criteria = getSession().createCriteria(AwardNums.class);
  57. // 05介绍的
  58. criteria.add(Restrictions.like("numbers", "05", MatchMode.END));
  59. HandleList.print(criteria.list());
  60. }
  61. @SuppressWarnings("unchecked")
  62. public void queryLike2() {
  63. Criteria criteria = getSession().createCriteria(AwardNums.class);
  64. // 05开始的
  65. criteria.add(Restrictions.like("numbers", "05%"));
  66. HandleList.print(criteria.list());
  67. }
  68. @SuppressWarnings("unchecked")
  69. public void queryInArray() {
  70. Criteria criteria = getSession().createCriteria(AwardNums.class);
  71. // new int[]错误的
  72. Integer[] arrInt = new Integer[] { 17720808, 17720809, 17720810 };
  73. criteria.add(Restrictions.in("id", arrInt));
  74. HandleList.print(criteria.list());
  75. }
  76. @SuppressWarnings("unchecked")
  77. public void queryInList() {
  78. Criteria criteria = getSession().createCriteria(AwardNums.class);
  79. // new int[]错误的
  80. List<Integer> list = new ArrayList<Integer>();
  81. list.add(17720808);
  82. list.add(17720809);
  83. list.add(17720810);
  84. criteria.add(Restrictions.in("id", list));
  85. HandleList.print(criteria.list());
  86. }
  87. @SuppressWarnings("unchecked")
  88. public void queryInSet() {
  89. Criteria criteria = getSession().createCriteria(AwardNums.class);
  90. // new int[]错误的
  91. Set<Integer> set = new TreeSet<Integer>();
  92. set.add(17720808);
  93. set.add(17720809);
  94. set.add(17720810);
  95. criteria.add(Restrictions.in("id", set));
  96. HandleList.print(criteria.list());
  97. }
  98. @SuppressWarnings("unchecked")
  99. public void queryInMap() {
  100. Criteria criteria = getSession().createCriteria(AwardNums.class);
  101. Map<String, Integer> map = new HashMap<String, Integer>();
  102. // String不能命名重复,否者会过滤重复的
  103. map.put("1", 17720808);
  104. map.put("2", 17720809);
  105. map.put("3", 17720810);
  106. criteria.add(Restrictions.in("id", map.values()));
  107. HandleList.print(criteria.list());
  108. }
  109. @SuppressWarnings("unchecked")
  110. public void queryIsEmpty() {
  111. Criteria criteria = getSession().createCriteria(AwardNums.class);
  112. // Property path [com.happy.entity.AwardNums.issue] does not reference a
  113. // collection
  114. criteria.add(Restrictions.isEmpty("issue"));
  115. HandleList.print(criteria.list());
  116. }
  117. @SuppressWarnings("unchecked")
  118. public void queryIsNotEmpty() {
  119. Criteria criteria = getSession().createCriteria(AwardNums.class);
  120. // Property path [com.happy.entity.AwardNums.issue] does not reference a
  121. // collection
  122. criteria.add(Restrictions.isNotEmpty("issue"));
  123. HandleList.print(criteria.list());
  124. }
  125. @SuppressWarnings("unchecked")
  126. public void queryIsNull() {
  127. Criteria criteria = getSession().createCriteria(AwardNums.class);
  128. // this_.id is null
  129. criteria.add(Restrictions.isNull("id"));
  130. HandleList.print(criteria.list());
  131. }
  132. @SuppressWarnings("unchecked")
  133. public void queryIsNotNull() {
  134. Criteria criteria = getSession().createCriteria(AwardNums.class);
  135. // this_.id is not null
  136. criteria.add(Restrictions.isNotNull("id"));
  137. HandleList.print(criteria.list());
  138. }
  139. @SuppressWarnings("unchecked")
  140. public void querySizeEq() {
  141. Criteria criteria = getSession().createCriteria(AwardNums.class);
  142. // Unknown collection role: com.happy.entity.AwardNums.id
  143. criteria.add(Restrictions.sizeEq("id", 15));
  144. HandleList.print(criteria.list());
  145. }
  146. @SuppressWarnings("unchecked")
  147. public void querySqlRestriction() {
  148. Criteria criteria = getSession().createCriteria(AwardNums.class);
  149. String alias = criteria.getAlias();
  150. // _很重要的
  151. criteria.add(Restrictions.sqlRestriction(alias + "_.id < 17720812"));
  152. HandleList.print(criteria.list());
  153. }
  154. @SuppressWarnings("unchecked")
  155. public void querySqlRestrictionEasy() {
  156. Criteria criteria = getSession().createCriteria(AwardNums.class);
  157. // {alias}.id
  158. criteria.add(Restrictions.sqlRestriction("{alias}.id < 17720812"));
  159. HandleList.print(criteria.list());
  160. }
  161. @SuppressWarnings("unchecked")
  162. public void querySqlRestrictionType() {
  163. Criteria criteria = getSession().createCriteria(AwardNums.class);
  164. // lower(this_.numbers) like lower(?)
  165. criteria.add(Restrictions
  166. .sqlRestriction("lower({alias}.numbers) like lower(?)", "%09",
  167. Hibernate.STRING));
  168. HandleList.print(criteria.list());
  169. }
  170. @SuppressWarnings("unchecked")
  171. public void queryConjunction() {
  172. Criteria criteria = getSession().createCriteria(AwardNums.class);
  173. // 永真情况下查询
  174. criteria.add(Restrictions.conjunction());
  175. HandleList.print(criteria.list());
  176. }
  177. @SuppressWarnings("unchecked")
  178. public void queryDisjunction() {
  179. Criteria criteria = getSession().createCriteria(AwardNums.class);
  180. // 永真情况下查询
  181. criteria.add(Restrictions.disjunction());
  182. HandleList.print(criteria.list());
  183. }
  184. @SuppressWarnings("unchecked")
  185. public void queryNaturalId() {
  186. Criteria criteria = getSession().createCriteria(AwardNums.class);
  187. // 永真情况下查询
  188. criteria.add(Restrictions.naturalId());
  189. HandleList.print(criteria.list());
  190. }
  191. @SuppressWarnings("unchecked")
  192. public void queryCompare() {
  193. Criteria criteria = getSession().createCriteria(AwardNums.class);
  194. // this_.id=? eq&&ne this_.id<>?
  195. criteria.add(Restrictions.eq("id", 17719845));
  196. // this_.id>=? ge&&le this_.id<=?
  197. criteria.add(Restrictions.ge("id", 17719845));
  198. // this_.id>? gt&&lt this_.id<?
  199. criteria.add(Restrictions.gt("id", 17719845));
  200. // this_.id<=?
  201. criteria.add(Restrictions.le("id", 17719845));
  202. // this_.id<?
  203. criteria.add(Restrictions.lt("id", 17719845));
  204. // this_.id<>?
  205. criteria.add(Restrictions.ne("id", 17719845));
  206. HandleList.print(criteria.list());
  207. }
  208. @SuppressWarnings("unchecked")
  209. public void queryCompareProperty() {
  210. Criteria criteria = getSession().createCriteria(AwardNums.class);
  211. // this_.issue=this_.numbers eq&&ne this_.id<>?
  212. criteria.add(Restrictions.eqProperty("id", "issue"));
  213. // this_.id>=this_.issue ge&&le this_.id<=?
  214. criteria.add(Restrictions.geProperty("id", "issue"));
  215. // this_.id>this_.issue gt&&lt this_.id<?
  216. criteria.add(Restrictions.gtProperty("id", "issue"));
  217. // this_.id<=this_.issue
  218. criteria.add(Restrictions.leProperty("id", "issue"));
  219. // this_.id<this_.issue
  220. criteria.add(Restrictions.ltProperty("id", "issue"));
  221. // this_.id<>this_.issue
  222. criteria.add(Restrictions.neProperty("id", "issue"));
  223. HandleList.print(criteria.list());
  224. }
  225. @SuppressWarnings("unchecked")
  226. public void queryOr() {
  227. Criteria criteria = getSession().createCriteria(AwardNums.class);
  228. // 或者查询
  229. criteria.add(Restrictions.or(Restrictions.eq("id", 17719845),
  230. Restrictions.eq("id", 17719846)));
  231. HandleList.print(criteria.list());
  232. }
  233. @SuppressWarnings("unchecked")
  234. public void queryAnd() {
  235. Criteria criteria = getSession().createCriteria(AwardNums.class);
  236. // 并且查询
  237. criteria.add(Restrictions.and(Restrictions.eq("id", 17719845),
  238. Restrictions.eq("issue", "2011100")));
  239. HandleList.print(criteria.list());
  240. }
  241. @SuppressWarnings("unchecked")
  242. public void query() {
  243. Criteria criteria = getSession().createCriteria(AwardNums.class);
  244. // 排除查询
  245. criteria.add(Restrictions.not(Restrictions.eq("id", 17719841)));
  246. HandleList.print(criteria.list());
  247. }
  248. }
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值