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. unity客户端自动断开连接

    问题描述: 当unity失去焦点一段时间后,与photon服务器端断开连接 问题根源: 默认unity失去焦点后会暂停运行,导致连接超时,服务器端超时断开连接 解决方案: 连接服务器后,填加一句代码让 ...

  2. no applicable action for [springProfile], current ElementPath is [[configuration][springProfile]]

    今天down了一个开源项目,启动后一直存在如下错误信息: ERROR in ch.qos.logback.core.joran.spi.Interpreter@26:42 - no applicabl ...

  3. vue大文件上传插件选哪个好?

    文件夹数据库处理逻辑 public class DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject() ...

  4. Pandas | GroupBy 分组

    任何分组(groupby)操作都涉及原始对象的以下操作之一: 分割对象 应用一个函数 结合的结果 在许多情况下,我们将数据分成多个集合,并在每个子集上应用一些函数.在应用函数中,可以执行以下操作: 聚 ...

  5. 修改了celery任务老是执行失败,跟shell中调试的结果不同

    因为没有重启celery,没有删除celerybeat-schedule,导致使用的task任务一直是原来缓存的,所以代码一直无法生效,也是日了狗了

  6. postcss 将px转换成rem vuecli3+vant+vue+postcss

    1.安装 npm install postcss-pxtorem --save 2.找到postcss.config.js 默认是这样 module.exports = { "plugins ...

  7. centos git编译

    1. 下载git源码 https://git-scm.com 2. 根据文档一步步操作 https://git-scm.com/book/en/v2/Getting-Started-Installin ...

  8. Ribbon核心组件IRule及配置指定的负载均衡算法

    Ribbon在工作时分为两步: 第一步:先选择 EurekaServer,它优先选择在同一个区域内负载较少的Server: 第二步:再根据用户指定的策略,在从Server取到的服务注册列表中选择一个地 ...

  9. LeetCode 717. 1比特与2比特字符(1-bit and 2-bit Characters)

    717. 1比特与2比特字符 LeetCode717. 1-bit and 2-bit Characters 题目描述 有两种特殊字符.第一种字符可以用一比特0来表示.第二种字符可以用两比特(10 或 ...

  10. Effective.Java第56-66条(规范相关)

    56.  为所有已公开的API元素编写文档注释 要正确地记录API,必须在每个导出的类.接口.构造方法.方法和属性声明之前加上文档注释.如果一个类是可序列化的,还需要记录它的序列化形式. 文档注释在源 ...