首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JPA - Criteria Query - 使用"like"搜索整数

JPA - Criteria Query - 使用 "like" 搜索整数

Criteria queries 是一种查询方法,用于在 Java 持久化(JPA)领域中从实体类中检索对象。使用 CriteriaQuery,您可以使用类似 SQL 的语法来构建查询,以便从 JPA 持久化对象中检索符合特定条件的对象。

以下是一个使用 CriteriaQuery 进行基于整数的模糊搜索的示例:

代码语言:java
复制
// 定义一个实体类
@Entity
public class Customer {
    @Id
    private Long id;
    private String name;
    private Integer age;

    // getters and setters
}

// 定义一个 CriteriaQuery 接口实现类
public class CustomerCriteriaQuery {
    public CriteriaQuery<Customer> createCriteriaQuery() {
        CriteriaBuilder builder = entityManager.getCriteriaBuilder();
        CriteriaQuery<Customer> criteriaQuery = builder.createQuery();
        Root<Customer> root = criteriaQuery.from(Customer.class);

        // 添加一个 "like" 模糊搜索条件
        criteriaQuery.where(builder.like(root.get("name"), "%" + searchTerm + "%"));

        // 定义排序条件
        criteriaQuery.orderBy(builder.asc(root.get("name")));

        return criteriaQuery;
    }
}

// 调用 CriteriaQuery 实现类进行查询
public List<Customer> getCustomersBySearchTerm(String searchTerm) {
    CustomerCriteriaQuery customerCriteriaQuery = new CustomerCriteriaQuery();
    return customerCriteriaQuery.createCriteriaQuery().getResultList();
}

上述代码示例中,我们定义了一个 Customer 实体类,以及一个 CustomerCriteriaQuery 实现类。CustomerCriteriaQuery 实现了 CriteriaQuery 接口,允许您使用类似 SQL 的语法构建查询。

createCriteriaQuery() 方法中,我们使用 entityManager 得到一个 CriteriaBuilder 对象,然后使用它创建一个 CriteriaQuery 对象。接着我们定义根对象(Root<Customer>),添加一个 "like" 模糊搜索条件,使用 % 符号指定搜索范围。

最后,在 getCustomersBySearchTerm() 方法中,我们创建一个 CustomerCriteriaQuery 对象,并调用 createCriteriaQuery() 方法得到一个 CriteriaQuery 对象。然后我们使用 getResultList() 方法得到一个包含所有符合搜索条件的 Customer 对象的列表。

总之,使用 CriteriaQuery 可以方便地进行复杂的查询操作,包括模糊搜索和排序等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券