Hibernate QBC的查询方式的总结

  Criteria criteria  =  this.getSession().createCriteria(EquipmentPO.class);

 

 

         criteria. add (Restrictions.allEq(new Map(Restrictions.eq("equipID",new String(" 11020449 ")),Restrictions.eq("equipID",new String(" 11020449 "))));        

 

 

      // 注意:between查询条件可解释为查询EquipmentPO对象中的equipID属性值在new String(" 11020449 ")和new String(" 11030137 ")之间的所有记录值(包含两个端点)
         criteria. add (Restrictions. between ("equipID",new String(" 11020449 "),new String(" 11030137 ")));
         

 

 

     // 查询结果列表记录按照equipID的属性值来升序排序
         criteria.addOrder( Order . asc ("equipID")); // 降序方式为: Order . desc ("equipID")      

  
     // 通过EquipmentPO对象的主键id来查询
        criteria. add (Restrictions.idEq("402882ac0d3f7ca8010d3f7ef869000b"));        
        

        Restrictions. like (fieldName, " % +  para +  " % ")
         

      // 使用ilike方式进行模糊查询
         criteria. add (Restrictions.ilike("equipID",new String(" % 11020 % ")));
       

      // ilike的i即ignore之意,所以这里查询出englishName值为"Optima XL 100K Ultracentrifuge"(忽略大小写)的记录
         criteria. add (Restrictions.ilike("englishName",new String("Optima XL 100K Ultracentrifuge"),MatchMode.ANYWHERE)); // 这里        
         

     // 使用in方式有两种形式,即数组或者Collection的方式,可参考如下两个实例
         criteria. add (Restrictions. in ("equipID",new String [] {" 11020449 "," 11020450 "})); // 数组参数
        

         Collection col  =  new ArrayList();
         col. add (new String(" 11020449 "));
         col. add (new String(" 11020450 "));
         col. add (new String(" 11020874 "));
         criteria. add (Restrictions. in ("equipID",col)); // Collection参数        
         

    // 使用isEmpty / isNotEmpty方式用来判断EquipmentPO对象中的Collection类型的属性是否为空的所有记录
    // EquipmentPO对象中定义属性private  Set  equipFunctionDevelopPOs  =  new HashSet();  //  设备功能开发对象
        criteria. add (Restrictions.isEmpty("equipFunctionDevelopPOs"));
        criteria. add (Restrictions.isNotEmpty("equipFunctionDevelopPOs"));

 

        

     // 使用isNull方式查询出所有schoolID属性没有值的记录。说明:Restrictions.isNull判断属性是否为空,为空返回true,反之返回false
         criteria. add (Restrictions. isNull ("schoolID"));
         criteria. add (Restrictions.isNotNull("schoolID"));        
         

     // 与Restrictions.eq正好相反,表示不存在( not   in )
         criteria. add (Restrictions. not (Restrictions.eq("equipID",new String(" 11020449 "))));
         

     // 使用Restrictions.sizeEq方式用来查询EquipmentPO对象中的Collection类型的属性equipFunctionDevelopPOs的size为1的所有记录
         criteria. add (Restrictions.sizeEq("equipFunctionDevelopPOs", 1 ));        
         

     // 使用sql限定的查询。注意{alias}.chnname这里是指实际表中的字段名而非属性名(不区分大小写)
         criteria. add (Restrictions.sqlRestriction("{alias}.chnname  like  (?)"," % % ",Hibernate.STRING));
         criteria. add (Restrictions.sqlRestriction("{alias}.ENGNAME  like  (?)"," % ptima % ",Hibernate.STRING));
         

     // 如果有多个查询条件,比如between子句的查询则如下:        
         BigDecimal []  unitPrice  =  {new BigDecimal( 402514 ),new BigDecimal( 614891 )};
         Type []  types  =  {Hibernate.BIG_DECIMAL,Hibernate.BIG_DECIMAL};
         criteria. add (Restrictions.sqlRestriction("{alias}.unit_price  between  (?)  and  (?)",unitPrice,types));
         

 

         List list  =  criteria.list();
         System.out.println("size ===> +  list.size());
          return  list;

 

原文地址:http://www.blogjava.net/ocean07000814/articles/72601.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值