Hibernate hql where子句

参考 http://www.imooc.com/learn/410

1、比较运算

1.1、比较运算符 =、<> 、<、>、<=、>=
Hibernate hql where子句

1.2、null值比较

hql的 where c.description <> null 等价于 sql 的where c.description is not null
hql的 where c.description = null 等价于 sql 的where c.description is null

Hibernate hql where子句

Hibernate hql where子句

2、范围运算

2.1、[not] in (列表)
如果给定的属性值在候选列表中存在,返回true,否则返回false

Hibernate hql where子句

2.2、[not] between 值1 and 值2
如果给定的属性值在给定的区间内,返回true,否则返回false

Hibernate hql where子句

3、字符串模式匹配

like关键字
通配符
% 匹配任意字符 where c.address like '%北京%'
_匹配一个字符 where c.address like '_北%'
Hibernate hql where子句

4、逻辑运算
逻辑与and,逻辑或or,逻辑非not
Hibernate hql where子句

5、集合运算

5.1、is[not] empty
判断集合是不是空集合,不包含任何元素
hibernate 会把hql 的 is [not] empty这个转成 sql中的exist
如果持久化类的属性是一个集合,不是基本类型,并且用这个集合类的属性在where条件中,就可以用到is [not] empty
Hibernate hql where子句

Hibernate hql where子句

5.2、member of 元素属于集合 in

6、四则运算+、-、*、/
可以用在select子句,也可以用在where子句
Hibernate hql where子句