hibernate Criteria中多个or和and的用法 and ( or or)
2024-09-05 04:35:57
- /s筛选去除无效数据
- /* detachedCriteria.add(
- Restrictions.or(
- Restrictions.like("chanpin", "冰箱", MatchMode.ANYWHERE),
- Restrictions.or(
- Restrictions.like("chanpin", "洗衣机", MatchMode.ANYWHERE),
- Restrictions.or(
- Restrictions.like("chanpin", "热水器", MatchMode.ANYWHERE),
- Restrictions.like("chanpin", "空调", MatchMode.ANYWHERE))))
- );
- */
- Disjunction dis=Restrictions.disjunction();
- dis.add(Restrictions.like("chanpin", "冰箱", MatchMode.ANYWHERE));
- dis.add(Restrictions.like("chanpin", "洗衣机", MatchMode.ANYWHERE));
- dis.add(Restrictions.like("chanpin", "热水器", MatchMode.ANYWHERE));
- dis.add(Restrictions.like("chanpin", "空调", MatchMode.ANYWHERE));
- detachedCriteria.add(dis);
- //e筛选去除无效数据
用来组合一组逻辑或【or】条件的方法
- Restrictions.disjunction();
用来组合一组逻辑与【and】条件的方法
- 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);
}
最新文章
- WSB功能分解(在线考试系统)
- 搭建java环境
- Android之Adapter用法总结-(转)
- 《高级Web应用程序设计》课程学习资料
- SQL2005中的事务与锁定(二)- 转载
- 面向对象---prototype
- ajax跨域访问 java controller 和 cxf(webservice) 配置方式(CORS)
- Python的函数式编程-传入函数、排序算法、函数作为返回值、匿名函数、偏函数、装饰器
- 《Programming WPF》翻译 第8章 4.关键帧动画
- 【java】一维数组循环位移方阵
- MonkeyImage API 实践全记录
- (简单) POJ 2387 Til the Cows Come Home,Dijkstra。
- 【网络】IP子网划分详解
- 监控报I/O问题,怎么办?
- Loadrunner的参数化解析
- MongoDB 无法创建抽象类的问题,
- Tensorflow运用RNN注意事项
- python singleton design pattern super() 多继承
- 【Visual Studio】Visual C# 中XML注释的使用(含注释在开发时显示换行)
- Java编程的逻辑 (41) - 剖析HashSet