Hibernate:Disjunction&Conjunction构造复杂的查询条件.
Hibernate:Disjunction&Conjunction构造复杂的查询条件
Disjunction和Conjunction是逻辑或和逻辑与,如下:
用来组合一组逻辑或【or】条件的方法
1.Restrictions.disjunction();
用来组合一组逻辑与【and】条件的方法
2.Restrictions.conjunction();
实例一:构造复杂的SQL查询条件
private void CheckBsc_lj(Criteria queryCriteria)
{
Disjunction disjunction = Restrictions.disjunction();
Criterion cirterion = Restrictions.sqlRestriction("SIMULPORTCAPACITY<SIMULPORTCAPACITYOCUPIED".toLowerCase());
disjunction.add(cirterion);
cirterion = Restrictions.sqlRestriction("ADSLPORTCAPACITY<ADSLPORTCAPACITYOCCUPIED".toLowerCase());
disjunction.add(cirterion);
cirterion = Restrictions.sqlRestriction("LANPORTCAPACITY<LANPORTCAPACITYOCCUPIED".toLowerCase());
disjunction.add(cirterion); // ONU端口,至少要录入一种端口
Conjunction conjunction = Restrictions.conjunction();
cirterion = Restrictions.eq("lanportcapacity", 0);
conjunction.add(cirterion);
cirterion = Restrictions.eq("simulportcapacity", 0);
conjunction.add(cirterion);
cirterion = Restrictions.eq("adslportcapacity", 0);
conjunction.add(cirterion); disjunction.add(conjunction);
queryCriteria.add(disjunction);
} 构造出的条件如下:
select *
from aaaa this_
where (simulportcapacity < simulportcapacityocupied or
adslportcapacity < adslportcapacityoccupied or
lanportcapacity < lanportcapacityoccupied or
(this_.LANPORTCAPACITY = ? and this_.SIMULPORTCAPACITY = ? and
this_.ADSLPORTCAPACITY = ?))
实例二:构造模糊查询
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);
版权声明:本文为博主原创文章,未经博主允许不得转载。
Hibernate:Disjunction&Conjunction构造复杂的查询条件.的更多相关文章
- hibernate离线查询DetachedCriteria清除上次的查询条件
1 原例概述 别名重复问题之后,我们还需要解决的问题就是: 如何清除hibernate的上次查询条件,如果不清除,将会导致上次的查询条件和下次的查询条件合并到了一起. 上次的查询条件和本次的查询条件合 ...
- SpringMVC整合Hibernate实现增删改查之按条件查询
首先我贴出我项目的结构,只完成了条件查询的相关代码,增删改没有写. 1.新建一个动态Web工程,导入相应jar包,编写web.xml配置文件 <context-param> <par ...
- [2014-12-30]如何动态构造Lambda表达式(动态构造Lambda查询条件表达式)
声明 本文对Lambda表达式的扩展,示例代码来源于网络. 场景描述 web开发查询功能的时候,如果查询条件比较多,就会遇到动态组合查询条件的情况.在手写sql的情况下,我们一般会根据传入的参数,针对 ...
- hibernate中带查询条件的分页
所谓分页,从数据库中分,则是封装一个分页类.利用分页对象进行分页. 但,分页往往带查询条件. 分页类的三个重要数据:[当前页码数],[数据库中的总记录数],[每页显示的数据的条数] 原理:select ...
- hibernate连接mysql,查询条件中有中文时,查询结果没有记录,而数据库有符合条件的记录(解决方法)
今天在另一台服务器上重新部署了网站,结果出现了以下问题: ——用hibernate做mysql的数据库连接时,当查询条件中有中文的时候,查询结果没有记录,而数据库中是存在符合条件的记录的. 测试了以下 ...
- Hibernate结合JPA编写通用泛型多条件查询
项目中使用Hibernate和JPA对数据库对象进行实例化,但是生成的方法不支持多条件查询.而如果针对每一个数据库对象进行多条件查询编码,则会变得很麻烦,而且一旦以后发生表结构发生变化,这些方法可能还 ...
- Hibernate里面如何使用DetachedCriteriaCriteria 实现多条件分页查询
WEB层: // 获取分页的请求参数 String start = request.getParameter("start"); String page = request.get ...
- Hibernate 多表查询 - Criteria添加子字段查询条件 - 出错问题解决
Criteria 查询条件如果是子对象中的非主键字段会报 could not resolve property private Criteria getCriteria(Favorite favori ...
- Servlet 分页保存查询条件
第一种情况:一个页面走一个JSP页面和Servlet 解决办法: /** 把用户这一次选择的所有条件保存Map集合中,再把 map存到Session会话中,点击分页时进入将Servlet中再将Sess ...
随机推荐
- CF-807C
C. Success Rate time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- UVA - 11624 Fire! 双向BFS追击问题
Fire! Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and the owner of ...
- SQL——基础概念
服务器登录名:指有权限登录到某服务器的用户:如sa 服务器角色:指一组固定的服务器用户,默认有9组: 登录名一定属于某些角色,默认为public 服务器角色不容许更改 登录后也不一定有权限操作数据库 ...
- JQuery学习笔记(三)遍历 DOM
遍历 DOM jQuery 提供了多种遍历 DOM 的方法.遍历方法中最大的种类是树遍历(tree-traversal). 向上父节点parent,向下子节点child,同胞next和pre 缩写搜索 ...
- 1118 Birds in Forest (25 分)
Some scientists took pictures of thousands of birds in a forest. Assume that all the birds appear in ...
- 洛谷P1776 宝物筛选_NOI导刊2010提高(02)
P1776 宝物筛选_NOI导刊2010提高(02) 题目描述 终于,破解了千年的难题.小FF找到了王室的宝物室,里面堆满了无数价值连城的宝物……这下小FF可发财了,嘎嘎.但是这里的宝物实在是太多了, ...
- android 通知(android 8.0可用)
final String CHANNEL_ID = "com.chao.channel.id"; final String CHANNEL_NAME = "com.c ...
- spring+mybits 整合所需jar包的下载路径(亲测有效)
1.spring jar包:http://repo.springsource.org/libs-release-local/org/springframework/spring/5.0.0.RELEA ...
- [题解](次短路)luogu_P2865路障(未)
好像是个不需要vis数组的次短路,跑到收敛,然而给我脑袋弄炸了......到现在还没懂.......究竟次短路应该怎么求a...... 抄题解: #include<bits/stdc++.h&g ...
- python 基础(七) 异常处理
异常处理 一.需求 当遇到错误的时候 不让程序停止执行 而是越过错误继续执行 二.主体结构 (抓取所有异常) try: 可能出现异常的代码段 except: 出现异常以后的处理 三.处理特 ...