Restrictions查询用法

wylc123 1年前 ⋅ 329 阅读

   

Restrictions查询用法

HQL运算符

QBC运算符

含义

=

Restrictions.eq()

等于equal

<> 

Restrictions.ne()

不等于not equal

> 

Restrictions.gt()

大于greater than

>=

Restrictions.ge()

大于等于greater than or equal

< 

Restrictions.lt()

小于less than

<=

Restrictions.le()

小于等于less than or equal

is null

Restrictions.isnull()

等于空值

is not null

Restrictions.isNotNull()

非空值

like

Restrictions.like()

字符串模式匹配

and

Restrictions.and()

逻辑与

and

Restrictions.conjunction()

逻辑与

or

Restrictions.or()

逻辑或

or

Restrictions.disjunction()

逻辑或

not

Restrictions.not()

逻辑非

in(列表)

Restrictions.in()

等于列表中的某一个值

not in(列表)

Restrictions.not(Restrictions.in())

不等于列表中任意一个值

between x and y

Restrictions.between()

闭区间xy中的任意值

not between x and y

Restrictions.not(Restrictions..between())

小于值X或者大于值y

 

Restrictions.or多个条件用法 

两个条件或查询:

Restrictions.or(Restrictions.in("username",list1),Restrictions.idEq(1));

三个或多个条件查询:(使用嵌套方式)

criteria.add(Restrictions.or(

Restrictions.in("username",list1),

Restrictions.or(Restrictions.idEq(3),Restrictions.idEq(4))

)

);



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;

 

第二种方法

Disjunction dis=Restrictions.disjunction();  

dis.add(Restrictions.like("username", a.getUsername(),MatchMode.ANYWHERE));

dis.add(Restrictions.like("real_name", a.getUsername(),MatchMode.ANYWHERE));

criteria.add(dis); 

 

更多内容请访问:IT源点

相关文章推荐
  • 该目录下还没有内容!

全部评论: 0

    我有话说: