Restrictions----用法
----------------------------------------方法说明
--------------------------QBC常用限定方法-----------------------------------
Restrictions.eq --------------------------------------> equal,等于.
Restrictions.ne --------------------------------------> not-equals,不等于
Restrictions.allEq -----------------------------------> 参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restrictions.eq的效果
Restrictions.gt ---------------------------------------> great-than > 大于
Restrictions.ge --------------------------------------> great-equal >= 大于等于
Restrictions.lt ----------------------------------------> less-than, < 小于
Restrictions.le ---------------------------------------> less-equal <= 小于等于
Restrictions.between ------------------------------> 对应SQL的between子句
Restrictions.like -------------------------------------> 对应SQL的LIKE子句
Restrictions.in ---------------------------------------> 对应SQL的in子句
Restrictions.and -------------------------------------> and 关系
Restrictions.or ---------------------------------------> or 关系
Restrictions.isNull ----------------------------------> 判断属性是否为空,为空则返回true
Restrictions.isNotNull -----------------------------> 与isNull相反
Restrictions.sqlRestriction -----------------------> SQL限定的查询
Order.asc ---------------------------------------------> 根据传入的字段进行升序排序
Order.desc -------------------------------------------> 根据传入的字段进行降序排序
MatchMode.EXACT -------------------------------> 字符串精确匹配.相当于"like 'value'"
MatchMode.ANYWHERE -----------------------> 字符串在中间匹配.相当于"like '%value%'"
MatchMode.START ------------------------------> 字符串在最前面的位置.相当于"like 'value%'"
MatchMode.END ---------------------------------> 字符串在最后面的位置.相当于"like '%value'"
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import org.hibernate.Criteria;
import org.hibernate.Hibernate;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import com.happy.dao.BaseHibernateDAO;
import com.happy.entity.AwardNums;
import com.happy.test.util.HandleList;
public class Restriction extends BaseHibernateDAO {
public static void main(String[] args) {
Restriction query = new Restriction();
query.query();
}
@SuppressWarnings("unchecked")
public void queryAlias() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 获取别名:eg:this
System.out.println(criteria.getAlias());
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryOrder() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
criteria.addOrder(Order.desc("id"));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryBetween() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 第一个参数是属性,第一个是小的数值,第三个是大的数值
criteria.add(Restrictions.between("id", 17720820, 17720830));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryIdEq() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// id=17720820
criteria.add(Restrictions.idEq(17720820));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryIlike() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 忽略大小写,05结束的
criteria.add(Restrictions.ilike("numbers", "05", MatchMode.END));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryLike() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 05介绍的
criteria.add(Restrictions.like("numbers", "05", MatchMode.END));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryLike2() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 05开始的
criteria.add(Restrictions.like("numbers", "05%"));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryInArray() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// new int[]错误的
Integer[] arrInt = new Integer[] { 17720808, 17720809, 17720810 };
criteria.add(Restrictions.in("id", arrInt));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryInList() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// new int[]错误的
List<Integer> list = new ArrayList<Integer>();
list.add(17720808);
list.add(17720809);
list.add(17720810);
criteria.add(Restrictions.in("id", list));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryInSet() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// new int[]错误的
Set<Integer> set = new TreeSet<Integer>();
set.add(17720808);
set.add(17720809);
set.add(17720810);
criteria.add(Restrictions.in("id", set));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryInMap() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
Map<String, Integer> map = new HashMap<String, Integer>();
// String不能命名重复,否者会过滤重复的
map.put("1", 17720808);
map.put("2", 17720809);
map.put("3", 17720810);
criteria.add(Restrictions.in("id", map.values()));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryIsEmpty() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// Property path [com.happy.entity.AwardNums.issue] does not reference a
// collection
criteria.add(Restrictions.isEmpty("issue"));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryIsNotEmpty() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// Property path [com.happy.entity.AwardNums.issue] does not reference a
// collection
criteria.add(Restrictions.isNotEmpty("issue"));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryIsNull() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// this_.id is null
criteria.add(Restrictions.isNull("id"));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryIsNotNull() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// this_.id is not null
criteria.add(Restrictions.isNotNull("id"));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void querySizeEq() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// Unknown collection role: com.happy.entity.AwardNums.id
criteria.add(Restrictions.sizeEq("id", 15));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void querySqlRestriction() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
String alias = criteria.getAlias();
// _很重要的
criteria.add(Restrictions.sqlRestriction(alias + "_.id < 17720812"));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void querySqlRestrictionEasy() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// {alias}.id
criteria.add(Restrictions.sqlRestriction("{alias}.id < 17720812"));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void querySqlRestrictionType() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// lower(this_.numbers) like lower(?)
criteria.add(Restrictions
.sqlRestriction("lower({alias}.numbers) like lower(?)", "%09",
Hibernate.STRING));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryConjunction() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 永真情况下查询
criteria.add(Restrictions.conjunction());
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryDisjunction() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 永真情况下查询
criteria.add(Restrictions.disjunction());
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryNaturalId() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 永真情况下查询
criteria.add(Restrictions.naturalId());
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryCompare() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// this_.id=? eq&&ne this_.id<>?
criteria.add(Restrictions.eq("id", 17719845));
// this_.id>=? ge&&le this_.id<=?
criteria.add(Restrictions.ge("id", 17719845));
// this_.id>? gt&< this_.id<?
criteria.add(Restrictions.gt("id", 17719845));
// this_.id<=?
criteria.add(Restrictions.le("id", 17719845));
// this_.id<?
criteria.add(Restrictions.lt("id", 17719845));
// this_.id<>?
criteria.add(Restrictions.ne("id", 17719845));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryCompareProperty() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// this_.issue=this_.numbers eq&&ne this_.id<>?
criteria.add(Restrictions.eqProperty("id", "issue"));
// this_.id>=this_.issue ge&&le this_.id<=?
criteria.add(Restrictions.geProperty("id", "issue"));
// this_.id>this_.issue gt&< this_.id<?
criteria.add(Restrictions.gtProperty("id", "issue"));
// this_.id<=this_.issue
criteria.add(Restrictions.leProperty("id", "issue"));
// this_.id<this_.issue
criteria.add(Restrictions.ltProperty("id", "issue"));
// this_.id<>this_.issue
criteria.add(Restrictions.neProperty("id", "issue"));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryOr() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 或者查询
criteria.add(Restrictions.or(Restrictions.eq("id", 17719845),
Restrictions.eq("id", 17719846)));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void queryAnd() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 并且查询
criteria.add(Restrictions.and(Restrictions.eq("id", 17719845),
Restrictions.eq("issue", "2011100")));
HandleList.print(criteria.list());
}
@SuppressWarnings("unchecked")
public void query() {
Criteria criteria = getSession().createCriteria(AwardNums.class);
// 排除查询
criteria.add(Restrictions.not(Restrictions.eq("id", 17719841)));
HandleList.print(criteria.list());
}
}
Restrictions----用法的更多相关文章
- Hibernate的 Restrictions用法
方法说明 方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt > Restrictions.ge ...
- Hibernate的Restrictions用法
Restrictions.eq --> equal,等于. Restrictions.allEq --> 参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restri ...
- Hibernate高级查询QBC条件设置——Restrictions用法 引自:http://www.cnblogs.com/evon168/archive/2010/10/29/1863059.html
方法说明 方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt > Restrictions.ge ...
- hibernate Restrictions用法
QBC常用限定方法 Restrictions.eq --> equal,等于. Restrictions.allEq --> 参数为Map对象,使用key/value进行多个等于的比对,相 ...
- Restrictions用法
HQL运算符 QBC运算符 含义 = Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not equal > Restrict ...
- hibernate Restrictions用法 HibernateTemplate Hibernate结合spring
常用方法 http://www.jb51.net/article/41541.htm ........................................... 博客分类: Hiberna ...
- Hibernate 马士兵 学习笔记 (转)
目录(?)[+] 第2课 Hibernate UML图 第3课 风格 第4课 资源 第5课 环境准备 第6课 第一个示例Hibernate HelloWorld 第7课 建立Annotation版本的 ...
- Hibernate学习大全
第1课 课程内容. 6 第2课Hibernate UML图. 6 第3课 风格. 7 第4课 资源. 7 第5课 环境准备. 7 第6课 第一个示例HibernateHelloWorld 7 第7课 ...
- Hibernate中Restrictions查询用法(转)
Restrictions查询用法 HQL运算符 QBC运算符 含义 = Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not equa ...
- Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法
Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法 2016-10-10 16:52:38 ...
随机推荐
- disk或者Partition镜像的制作
备份镜像还原一般都是在client-server端这边才有涉及,不过作为平时爱折腾的咸鱼,表示偶尔玩玩这种操作也不错: 工具:pc X 1(装有 大白菜,装机吧,一类制作pe软件的即可,大同小异) ...
- 在不损坏数据的情况下调整分区大小(ext2\ext3\ext4)
现在的时间是2017年5月27日 我想说调整分区大小没那么麻烦,至少我直接将一个ext3格式分区从50G减少到了30G. 步骤如下 1 首先确保那个分区是未挂载的. 2 调整分区大小,但是其实并没有实 ...
- nginx的基础概念
http://tengine.taobao.org/book/index.html 算是看书笔记吧,太多了就用自己的话写一下了 nginx是以多进程 的方式来工作的,启动时会有一个master进程 ...
- Springboot项目静态资源配置
springboot项目的静态资源配置网上有好多,说的也很详细 我今天出错是自定义了一个filter,在shiro里配置的/**,自定义filter 所以一直报302
- vue常见面试题
什么是 mvvm? MVVM 是 Model-View-ViewModel 的缩写.mvvm 是一种设计思想.Model 层代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑:View ...
- redis集群-4
redis集群原理 redis cluster在设计的时候,就考虑到了去中心化,去中间件,也就是说,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态.每个节点都和其 ...
- 深入理解dijkstra+堆优化
深入理解dijkstra+堆优化 其实就这几种代码几种结构,记住了完全就可以举一反三,所以多记多练多优化多思考. Dijkstra 对于一个有向图或无向图,所有边权为正(边用邻接矩阵的形式给出), ...
- python singleton 4种单例
def singleton(cls, *args, **kwargs): instances = {} def inner(cls, *args, **kwargs): if cls not in i ...
- LOJ #103. 子串查找 (Hash)
题意 给定两个字符串 \(A\) 和 \(B\),求 \(B\) 在 \(A\) 中的出现次数. 思路 这是一道 \(KMP\) 的模板题. 不过 \(Hash\) 是个好东西,可以用 \(Hash\ ...
- 【WPF】一些拖拽实现方法的总结(Window,UserControl)
原文:[WPF]一些拖拽实现方法的总结(Window,UserControl) 原文地址 https://www.cnblogs.com/younShieh/p/10811456.html 前文 本文 ...