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】条件的方法

  1. Restrictions.disjunction();

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

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

hibernate Criteria中多个or和and的用法 and ( or or)的更多相关文章

  1. hibernate criteria中Restrictions的用法

    方法说明 方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt > Restrictions.ge ...

  2. hibernate Criteria中or和and的用法

    /s筛选去除无效数据 /*      detachedCriteria.add( Restrictions.or( Restrictions.like("chanpin", &qu ...

  3. 【hibernate criteria】hibernate中criteria的完整用法 转

    ---恢复内容开始--- 转自:http://www.360doc.com/content/090313/10/26262_2794855.html 1.Criteria Hibernate 设计了 ...

  4. Hibernate Session中的save(),update(),delete(),saveOrUpdate() 细粒度分析

    Hibernate在对资料库进行操作之前,必须先取得Session实例,相当于JDBC在对资料库操作之前,必须先取得Connection实例, Session是Hibernate操作的基础,它不是设计 ...

  5. Hibernate类中集合的映射

    1 pojo类集合属性的映射 在pojo类中定义集合属性. 1.1  List集合属性的映射 package org.guangsoft.pojo; import java.util.List; pu ...

  6. atitit. 统计功能框架的最佳实践(1)---- on hibernate criteria

    atitit. 统计功能框架的最佳实践(1)---- on hibernate criteria 1. 关键字 1 2. 统计功能框架普通有有些条件选项...一个日期选项..一个日期类型(日,周,月份 ...

  7. Hibernate中createCriteria即QBC查询的详细用法 .Hibernate中createCriteria即QBC查询的详细用法 .

    现在假设有一个Student类,内有id,name,age属性String hql = "from Student s";按照以前的做法,我们通常是Query query = se ...

  8. Hibernate Criteria使用

    hibernate中Criteria的完整用法 Criteria 是一个完全面向对象,可扩展的条件查询API,通过它完全不需要考虑数据库底层如何实现.SQL语句如何编写,是Hibernate框架的核心 ...

  9. Hibernate中createCriteria即QBC查询的详细用法

    现在假设有一个Student类,内有id,name,age属性String hql = "from Student s";按照以前的做法,我们通常是Query query = se ...

随机推荐

  1. 题解:洛谷P1891 疯狂LCM

    原题链接 题目描述 描述: 众所周知,czmppppp是数学大神犇.一天,他给众蒟蒻们出了一道数论题,蒟蒻们都惊呆了... 给定正整数N,求LCM(1,N)+LCM(2,N)+...+LCM(N,N) ...

  2. python与javascript 引入模块的方法对比

    1.引入整体模块对比 python 方法一: # 引入全部函数 from xxx import * # 直接使用模块里面的各函数或者属性 test() 方法二: # 引入全局的模块 import gl ...

  3. Windbg Memory(内存)窗口的使用

    在 WinDbg 中,可以查看和编辑内存,通过输入命令或通过使用内存窗口. 内存窗口的打开 通过菜单View-->Memory 通过快捷键Alt+5 通过工具栏 使用内存窗口 通过上面方式打开的 ...

  4. selenium--单选下拉列表

    下拉选择 from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get(&q ...

  5. K8s集群认证之RBAC

    kubernetes认证,授权概括总结: RBAC简明总结摘要:API Server认证授权过程: subject(主体)----->认证----->授权[action(可做什么)]--- ...

  6. 使用 AI 绘制箭头

    参考下面教程 有空再整理 https://jingyan.baidu.com/article/7082dc1cd77899e40b89bd5a.html http://www.360doc.com/c ...

  7. Java 并发系列之九:java 原子操作类Atomic(13个)

    1. 原子更新基本类型类 2. 原子更新数组 3. 原子更新引用 4. 原子更新属性 5. txt java 原子操作类Atomic 概述 java.util.concurrent.atomic里的原 ...

  8. Docker环境下的前后端分离项目部署与运维(八)使用Docker部署RabbitMQ集群

    下载RabbitMQ镜像 镜像地址RabbitMQ Docker官方认证镜像地址:https://hub.docker.com/_/rabbitmq 安装命令安装之前,切记把Docker Hub设置为 ...

  9. 关于Echarts柱状图实现的细节

    echarts柱状图显示数值[1] echarts2:  itemStyle : { normal: {label : {show: true, position: 'top'}}}, echarts ...

  10. 2018-2019-2 20165315《网络对抗技术》Exp 8 Web基础

    2018-2019-2 20165315<网络对抗技术>Exp 8 Web基础 一.实验内容 Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST ...