HCQL (Hibernate Criteria 查询语言)

2024 年 8 月 29 日 | 阅读 3 分钟

Hibernate Criteria 查询语言 (HCQL) 用于根据特定条件获取记录。Criteria 接口提供了应用条件的方法,例如检索工资大于 50000 的表的所有记录等。

HCQL 的优点

HCQL 提供了添加条件的方法,因此 java 程序员添加条件很容易。java 程序员可以在查询中添加许多条件。

Criteria 接口

Criteria 接口提供了许多指定条件的方法。可以通过调用 Session 接口的 createCriteria() 方法来获取 Criteria 对象。

Session 接口的 createCriteria() 方法的语法

Criteria 接口的常用方法如下

  1. public Criteria add(Criterion c) 用于添加约束。
  2. public Criteria addOrder(Order o) 指定排序。
  3. public Criteria setFirstResult(int firstResult) 指定要检索的第一个记录数。
  4. public Criteria setMaxResult(int totalResult) 指定要检索的记录总数。
  5. public List list() 返回包含对象的列表。
  6. public Criteria setProjection(Projection projection) 指定投影。

Restrictions 类

Restrictions 类提供可用作 Criterion 的方法。Restrictions 类的常用方法如下

  1. public static SimpleExpression lt(String propertyName,Object value)小于 约束设置为给定属性。
  2. public static SimpleExpression le(String propertyName,Object value)小于或等于 约束设置为给定属性。
  3. public static SimpleExpression gt(String propertyName,Object value)大于 约束设置为给定属性。
  4. public static SimpleExpression ge(String propertyName,Object value)大于或等于 约束设置为给定属性。
  5. public static SimpleExpression ne(String propertyName,Object value)不等于 约束设置为给定属性。
  6. public static SimpleExpression eq(String propertyName,Object value)等于 约束设置为给定属性。
  7. public static Criterion between(String propertyName, Object low, Object high) 设置 之间 约束。
  8. public static SimpleExpression like(String propertyName, Object value)like 约束设置为给定属性。

Order 类

Order 类表示一个顺序。Restrictions 类的常用方法如下

  1. public static Order asc(String propertyName) 根据给定属性应用升序。
  2. public static Order desc(String propertyName) 根据给定属性应用降序。

Hibernate Criteria 查询语言示例

这里给出了许多 HCQL 示例。

HCQL 示例:获取所有记录


HCQL 示例:获取第 10 到 20 条记录


HCQL 示例:获取工资大于 10000 的记录


HCQL 示例:根据工资按升序获取记录

具有投影的 HCQL

我们可以通过投影来获取特定列的数据,例如姓名等。让我们看一个简单的投影示例,它只打印表 NAME 列的数据。

下一个主题Hibernate 命名查询