hibernate Criteria中or和and的用法 and ( or or)

博客主要介绍了Java中筛选去除无效数据的方法,展示了使用Restrictions类组合逻辑或【or】条件的代码示例,如筛选产品为冰箱、洗衣机等的数据。还提及了组合逻辑与【and】条件的方法,以及给出了实际SQL和对应代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

转载于:https://www.cnblogs.com/q149072205/p/11050541.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值