Hibernate—Restrictions

转载 2015年11月18日 15:06:59

方法

说明

Restrictions.eq

Restrictions.allEq

利用Map来进行多个等于的限制

Restrictions.gt

Restrictions.ge

>=

Restrictions.lt

Restrictions.le

<=

Restrictions.between

BETWEEN

Restrictions.like

LIKE

Restrictions.in

in

Restrictions.and

and

Restrictions.or

or

Restrictions.sqlRestriction

用SQL限定查询

有空再添加上,代码示例。

QBC常用限定方法 

Restrictions.eq --> equal,等于.

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'"

例子
查询年龄在20-30岁之间的所有学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.between("age",new Integer(20),new Integer(30)).list();
查询学生姓名在AAA,BBB,CCC之间的学生对象
String[] names = {"AAA","BBB","CCC"};
List list = session.createCriteria(Student.class)
.add(Restrictions.in("name",names)).list();
查询年龄为空的学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.isNull("age")).list();
查询年龄等于20或者年龄为空的学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.or(Restrictions.eq("age",new Integer(20)),
Restrictions.isNull("age")).list();

--------------------------------------------------------------------
使用QBC实现动态查询 
public List findStudents(String name,int age){

Criteria criteria = session.createCriteria(Student.class);
if(name != null){
criteria.add(Restrictions.liek("name",name,MatchMode.ANYWHERE));
}
if(age != 0){
criteria.add(Restrictions.eq("age",new Integer(age)));
}
criteria.addOrder(Order.asc("name"));//根据名字升序排列
return criteria.list();
}

-----------------------------------------------------------------------------------

今天用了写hibernate高级查询时用了Restrictions(当然Expression也是可以以的)这个类.感觉不错.
下面的代码写的不易读.其实核心就是一句
Restrictions.or(Restrictions.like(),Restrictions.or(Restrictions.like,........))
里面的or可以无限加的.还是比较好用

Session session = getHibernateTemplate().getSessionFactory()
.openSession();
Criteria criteria = session.createCriteria(Film.class);
List<Film> list = criteria.add(
Restrictions.or(Restrictions.like("description", key,MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like("name", key,MatchMode.ANYWHERE),
Restrictions.or(    Restrictions.like("direct", key,MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like("mainplay",key,MatchMode.ANYWHERE),
Restrictions.like("filearea", key,MatchMode.ANYWHERE)))))).list();

session.close();
return list;


hibernate 多条件与查询:Restrictions

hibernate 多条件与查询:Restrictions
  • cocoaxian
  • cocoaxian
  • 2016年08月23日 15:36
  • 2160

Hibernate Restrictions的运算符

HQL运算符 QBC运算符 含义 = Restrictions.eq() 等于equal Restriction...
  • herb777
  • herb777
  • 2012年03月12日 15:57
  • 7011

Hibernate Restrictions 简单使用

1. 说明 Restrictions 是产生查询条件的工具类。 2. 定义 可以直接用class创建 DetachedCriteria searDc = DetachedCriteria.forCla...
  • xj80231314
  • xj80231314
  • 2016年06月16日 15:48
  • 823

hibernate_Restrictions用法 hibernate_Restrictions用法

方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限...
  • u013380777
  • u013380777
  • 2016年06月28日 23:49
  • 762

hibernate模糊查询-Restrictions.i…

Criteria criteria = session.createCriteria(TaDiagnoseSystem.class);    //增加查询条件    if(StringUtils.i...
  • qq741997129
  • qq741997129
  • 2014年06月05日 16:07
  • 839

Hibernate的Restrictions用法

方法说明Restrictions.eq=Restrictions.allEq利用Map来进行多个等于的限制Restrictions.gt>Restrictions.ge>=Restrictions.l...
  • huangxingchen123
  • huangxingchen123
  • 2016年09月27日 16:54
  • 368

hibernate 比较时间大小; 创建别名;

if(startTime!=null&&!startTime.equals("")){             dc.add(Restrictions.ge("createTime", DateUti...
  • u010509143
  • u010509143
  • 2013年09月27日 07:17
  • 1364

Hibernate 中的QBC 语言中使用 Restrictions 进行日期比较

最近在使用,ssh进行项目开发,使用QBC查找位于某一个时间段的数据的时候发现, 使用的日期的字符串的格式是 yyyy-MM-dd  这样的字符串 转换成 Date 对象的时候, 为这一天的开始 。...
  • tan_1208815066
  • tan_1208815066
  • 2014年03月18日 14:40
  • 1938

Hibernate-Criteria(QBC)Restrictions各种方法

对象查询。动态查询比HQL更有优势! Criteria criteria = session.createCriteria(Dept.class); List list=criteria.list(...
  • qq_31776219
  • qq_31776219
  • 2016年06月04日 13:26
  • 351

hibernate的Restrictions对数字型即整型进行模糊查询

// TEARCHER_ID是数据库里面的字段。而id是代码中的参数值。 Restrictions.sqlRestriction("CAST({alias}.TEARCHER_ID AS CHAR) ...
  • qq416647781
  • qq416647781
  • 2015年04月15日 13:48
  • 1369
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate—Restrictions
举报原因:
原因补充:

(最多只允许输入30个字)