在HQL中可以使用表达式完成指定的运算或者作为限制查询结果的条件。如下表所示

|-----------------------------------------------------------|
|   类别                    |           运算符              |
|---------------------------|-------------------------------|
|逻辑运算符                 |or、and及not                   |
|---------------------------|-------------------------------|
|数学运算符                 |+、-、*、/                     |
|---------------------------|-------------------------------|
|                           |=、<>、!=、<、>、<=、>=、like、|
|                           |not like、between、not between |
|比较运算符                 |in、not in、is null、          |
|                           |is not null、is empty、        |
|                           |is not empty、member of、      |
|                           |not member of                  |
|---------------------------|-------------------------------|
|字符串连接                 | ||                            |
|---------------------------|-------------------------------|
|分支选择                   |case及case...when...then...else|
|                           |....end                        |
|---------------------------|-------------------------------|
|集合运算                   |some、exists、all、any         |
|---------------------------|-------------------------------|

1、where子句

在HQL中使用where子句来限定查询条件,该子句后跟表示限定查询条件的表达式。如:

Query query = session.createQuery("from Guestbook where name = 'XXX'");

2、between子句

在HQL的where子句中使用between可以返回属性值在指定范围之内的记录。如:

Query query = session.createQuery("from Guestbook where id between 1 and 10");

3、not between子句

在HQL中的where子句使用not between可以返回属性值不在指定范围之内的记录。如:
   
   Query query = session.createQuery("from Guestbook where id not between 1 and 10");

4、in子句

在HQL中的where子句使用in可以返回属性值在指定集合中的记录。如:

Query query = session.createQuery("from Guestbook where name in ('XXX','XXX')");

5、not in子句

在HQL中的where子句使用not in可以返回属性值不在指定集合中的记录。如:

Query query = session.createQuery("from Guestbook where name not in ('XXX','XXX')");

6、like子句
  
   在HQL中的where子句使用like子句可以模糊查找属性值。"_"可以匹配一个字符,“%”可以匹配0个    多个字符。如:

Query query = session.createQuery("from Guestbook where name like 'X%'");

7、not like子句
  
   在HQL中的where子句中使用not like子句可以模糊查询属性值的取非。如:

Query query = session.createQuery("from Guestbook where name not like 'X%'");

8、and子句

在HQL中的where子句中使用and表示查询条件之间与的关系。如:
 
   Query query = session.createQuery("from Guestbook where name = 'XXX' and id<10");

9、or子句

在HQL中的where子句中使用or表示查询条件之间或的关系。如:

Query query = session.createQuery("from Guestbook where name='XX' or name = ’XXX‘");

10、not子句

在HQL中的where子句中使用not表示查询条件的非。如:

Query query = session.createQuery("from Guestbook where not(name='XXX')");

11、is null子句

在HQLwhere子句中,is null用来判断实体类的某些属性值是否为空。如:

Query query = session.createQuery("from Guestbook where email is null");

11、is not null子句

在HQLwhere子句中,is null用来判断实体类的某些属性值是否不为空。如:

Query query = session.createQuery("from Guestbook where email is not null");

Hibernate HQL基础 限定查询条件(这里面有各种条件查询)相关推荐

  1. hql 字符串where语句_Hibernate HQL基础 限定查询条件

    在HQL中可以使用表达式完成指定的运算或者作为限制查询结果的条件.如下表所示 |-----------------------------------------------------------| ...

  2. Hibernate HQL基础 投影查询

    HQL中投影查询即查询一个持久化类的一个或多个属性值(不包括全部属性值),则需要使用HQL的select子句. 1.查询持久化对象的单一属性值    为查询持久化对象的一个属性值,在select子句后 ...

  3. Hibernate HQL基础 调用数据库存储过程

    在Hibernate中也可以通过SQLQuery对象调用数据库的存储过程,但是要求存储过程必须返回一个结果集. 如在Oracle数据库的一个存储过程为: CREATE OR REPLACE PROCE ...

  4. weblogic10异常:org.hibernate.hql.ast.HqlToken

    今天部署应用到WLS10上,在运行过程中出现 ClassNotFoundException: org.hibernate.hql.ast.HqlToken 错误weblogic异常退出. GOOGLE ...

  5. Hibernate 学习笔记(二)—— Hibernate HQL查询和 QBC 查询

    目录 一.Hibernate 的 HQL 查询 1.1.查询所有数据 1.2.条件查询 1.3.排序查询 1.4.统计查询 1.5.分页查询 1.6.投影查询 二.Hibernate 的 QBC 查询 ...

  6. SQL语法之基础查询(进阶1)and条件查询(进阶2)

    SQL语法体系学习笔记 SQL语法之基础查询(进阶1)and条件查询(进阶2) SQL语法之排序查询(进阶3)and常见函数(进阶4) SQL语法之分组函数,分组查询(进阶5)and连接查询(sql9 ...

  7. Hibernate hql 查询指定字段并获取结果集

    Hibernate hql 查询指定字段并获取结果集 在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况: 1.查询全部字 ...

  8. hibernate hql 关联查询_Hibernate【关联查询篇】

    1. Hibernate 关联查询 1.1. 说明 Hibernate框架支持通过配置映射关系实现多表关联查询. 1.2. 类型 关联查询分为:一对一(one-to-one).一对多(one-to-m ...

  9. hibernate mysql 关联查询_hibernate 查询缓存,以及在关联表查询缓存下使用HQL,而不是sql去查询...

    什么是查询缓存? 也就是如果开启了查询缓存, 在 没有使用二级缓存的情况下,会 缓存第一次查询出来的数据的id. 第二次查询的时候, 如果查询的参数和查询语句没有变化,那么就会使用 第一次查询的出来的 ...

最新文章

  1. 虚拟纹理与几何图像技术
  2. easyui combotree的使用
  3. DB2存储过程——条件判断语句if then
  4. 树莓派第三代跨越发展,采用64位处理器内建WiFi及蓝牙
  5. 第七届蓝桥杯(国赛)——随意组合-dfs,next_permutation
  6. java不规则算法_分布式id生成算法 snowflake 详解
  7. 【转载】Android 工具-adb原理
  8. 数据可视化技术对于企业的重要性
  9. H3C ospf与nat转换
  10. MySQL数据库的登陆
  11. Nginx 读写分离详解
  12. xp计算机调亮度,老xp系统怎么调亮度台式电脑(教你XP系统如何调节亮度)
  13. 什么?你居然不会微信分身
  14. AR、VR、MR 别傻傻分不清了
  15. 山东大学软件工程应用与实践——WeaselTSF(一)
  16. 服务器2012怎么换桌面背景,Windows Server 2012 R2桌面化详细设置图解
  17. 推动计算机革命的幕后黑手
  18. Android轻量级APM性能监测方案
  19. linux中浏览器连不上网络,在Linux中修复Firefox浏览器“Network Protocol Error”错误的方法...
  20. 微信小程序定义公共方法

热门文章

  1. python 定时加载网页
  2. VTK:阴影灯用法实战
  3. boost::execution_monitor相关的测试程序
  4. boost::histogram::accumulators::count用法的测试程序
  5. boost::core_numbers用法的测试程序
  6. boost::functional模块功能性的测试程序
  7. GDCM:基本应用程序级别机密性配置文件测试程序
  8. VTK:可视化之BoxClipUnstructuredGrid
  9. VTK:简单操作之FloatingPointExceptions
  10. VTK:相互作用之RubberBand3D