zoukankan      html  css  js  c++  java
  • hibernate Criteria中多个or和and的用法 and ( or or)

    1. /s筛选去除无效数据  
    2. /*      detachedCriteria.add( 
    3.                 Restrictions.or( 
    4.                 Restrictions.like("chanpin", "冰箱", MatchMode.ANYWHERE),  
    5.                 Restrictions.or( 
    6.                 Restrictions.like("chanpin", "洗衣机", MatchMode.ANYWHERE),  
    7.                 Restrictions.or( 
    8.                 Restrictions.like("chanpin", "热水器", MatchMode.ANYWHERE),  
    9.                 Restrictions.like("chanpin", "空调", MatchMode.ANYWHERE)))) 
    10.                 ); 
    11. */  
    12.         Disjunction dis=Restrictions.disjunction();  
    13.         dis.add(Restrictions.like("chanpin", "冰箱", MatchMode.ANYWHERE));  
    14.         dis.add(Restrictions.like("chanpin", "洗衣机", MatchMode.ANYWHERE));  
    15.         dis.add(Restrictions.like("chanpin", "热水器", MatchMode.ANYWHERE));  
    16.         dis.add(Restrictions.like("chanpin", "空调", MatchMode.ANYWHERE));  
    17.         detachedCriteria.add(dis);  
    18.         //e筛选去除无效数据  



    用来组合一组逻辑或【or】条件的方法 

    Java代码  收藏代码
    1. Restrictions.disjunction();  



    用来组合一组逻辑与【and】条件的方法 

    Java代码 
    1. Restrictions.conjunction();  



    实际中有sql如下: where   transportType=1 and ((pol=1 and pod=2) or (pol=1 and pod=3) or (pol=1 and pod=4))

    代码如下

    Criteria criteria = getCriteria();
            if(transportType!=null)criteria.add(Restrictions.eq("transportType", transportType));
            if(polIdStr!=null && podIdStr!=null) {
                List<Integer> polIdList = ListUtil.stringToList(polIdStr);
                List<Integer> podIdList = ListUtil.stringToList(podIdStr);
                List<Criterion> CriterionList=new ArrayList<Criterion>();
    
                Disjunction dis = Restrictions.disjunction();//多个or可以拼蛸
                for(int polId:polIdList){
                    for(int podId:podIdList){
                        Conjunction con=Restrictions.conjunction();//多个and拼接
                        con.add(Restrictions.eq("polId", polId));
                        con.add(Restrictions.eq("podId", podId));
                        dis.add(con);
                    }
                }
                criteria.add(dis);
            }
  • 相关阅读:
    基于redis集群实现的分布式锁,可用于秒杀商品的库存数量管理,有測试代码(何志雄)
    VC断点失败的原因之中的一个
    由易到难学习递归的精华
    【特征检測】BRIEF特征点描写叙述算法
    POJ 2386 Lake Counting
    Design Pattern 设计模式1
    使用 InstallShield 制作 Delphi 软件安装包
    在64位系统上部署BDE的要点
    SQL SERVER 存储过程中SELECT 返回值如何赋值给变量
    sql语句中的insert 和 insert into 的区别?into有什么用?
  • 原文地址:https://www.cnblogs.com/q149072205/p/11050541.html
Copyright © 2011-2022 走看看