Criteria API 的写法有点怪,我使用的是hibernate 5.6.1
时间: 2024-09-09 18:12:02 浏览: 44
api.zip_hibernate api_hibernate api chm
Criteria API 是 Hibernate 提供的一种类型安全的查询接口,用于构建和执行基于对象的查询。它的目的是提供一种编译时类型安全的方式来构建查询,以减少手写HQL或原生SQL的复杂性和出错概率。Criteria API 的写法可能与你习惯的查询构建方式不同,但是它允许你以一种面向对象的方式来构建查询条件。
在 Hibernate 5.6.1 中使用 Criteria API 的基本步骤通常包括以下几个方面:
1. 创建 Criteria 实例:
```java
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<Type> criteriaQuery = builder.createQuery(Type.class);
```
2. 指定查询的根实体:
```java
Root<Type> root = criteriaQuery.from(Type.class);
```
3. 构建查询条件(例如,使用 CriteriaBuilder 的各种方法来定义查询的 where 子句):
```java
Predicate predicate = builder.equal(root.get("propertyName"), "propertyValue");
criteriaQuery.where(predicate);
```
4. 执行查询:
```java
List<Type> results = entityManager.createQuery(criteriaQuery).getResultList();
```
5. (可选)使用 Criteria API 添加排序、分页等操作。
示例代码展示了一个简单的查询,假设有一个名为 `Type` 的实体,我们想查询属性 `propertyName` 等于 `propertyValue` 的所有实体。
请注意,Hibernate 的版本更新可能会对 API 进行一些调整,确保查看与你所使用的 Hibernate 版本相对应的官方文档,以了解最新的 API 使用方法。
阅读全文