• Restrictions----用法



    ----------------------------------------方法说明

    --------------------------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 }



  • 相关阅读:
    POJ 1860 Currency Exchange (Bellman ford)
    POJ 1502 MPI Maelstrom (最短路)
    2015 Multi-University Training Contest 2 1006(DFS)
    HDU 1495 非常可乐(枚举+DFS)
    HDU 5289 Assignment(单调队列)
    ACDream 1734 Can you make a water problem?(贪心)
    ACDream 1735 输油管道
    ACDream 1726 A Math game (折半查找)
    CSU 1602 Needle Throwing Game (投针问题)
    CSU 1604 SunnyPig (BFS)
  • 原文地址:https://www.cnblogs.com/czq520/p/11799488.html
Copyright © 2020-2023  润新知