java criteria类
时间: 2023-09-28 10:06:46 浏览: 41
Java Criteria 类是 Java Persistence API (JPA) 中的一个类,用于创建和执行动态查询。提供了一种类型安全的方法来构建查询,而不需要编写原生的 SQL 查询语句。
Criteria 类允许开发人员通过面向对象的方式来构建查询,而不是直接使用字符串拼接 SQL 查询语句。通过使用 Criteria 类,可以更方便地构建复杂的查询条件,并且能够在编译时进行类型检查,减少了运行时错误的可能性。
Criteria 查询使用了一种类似于构建器模式的方式,通过链式调用方法来设置查询条件。可以设置查询的过滤条件、排序规则、分页等。最后,通过调用相应的方法执行查询并获取结果。
以下是一个简单示例,演示如何使用 Criteria 类进行查询:
```java
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<User> criteriaQuery = criteriaBuilder.createQuery(User.class);
Root<User> root = criteriaQuery.from(User.class);
criteriaQuery.select(root)
.where(criteriaBuilder.equal(root.get("age"), 18))
.orderBy(criteriaBuilder.asc(root.get("name")));
List<User> users = entityManager.createQuery(criteriaQuery).getResultList();
```
在上面的示例中,我们使用 CriteriaBuilder 创建了一个 CriteriaQuery 对象,指定了实体类 User 作为查询的返回类型。然后,我们通过调用 `criteriaQuery.select()` 方法设置要查询的字段,并使用 `criteriaBuilder.equal()` 方法设置了一个过滤条件,即 age 字段等于 18。最后,使用 `criteriaBuilder.asc()` 方法设置了一个排序规则,按照 name 字段升序排序。
最后,我们通过调用 `entityManager.createQuery(criteriaQuery).getResultList()` 执行查询,并获取查询结果。
这只是 Criteria 类的基本用法,它还提供了更多的方法和功能,可以根据具体的需求进行灵活的查询操作。