Hibernate HQL与QBC 常用语法
Hibernate中有两种查询方法,一种是HQL 全称:hibernate Query Language,另外种是QBC 全称:Query By Criteria,HQL优点是与sql相近,可读性好,功能强大,效率高。但它是在运行时才被解析,以字符形式出现,所以扩展性差。而QBC提供面向对象的接口,编译时就可被解析,便于排错调试,扩展性好,允许用户扩展Criteria接口。但它与SQL差异很大,可读性差,不支持报表和子表查询。
Hibernate 常用语法:
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() | 字符串模式匹配 |
not like | Restrictions.not(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()) | 不等于列表中任意一个值 |