JPA JPQL 简介

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

JPQL (Java Persistence Query Language) 是一种面向对象的查询语言,用于对持久实体执行数据库操作。 JPQL 使用实体对象模型来操作 SQL 查询,而不是数据库表。 在这里,JPA 的作用是将 JPQL 转换为 SQL。 因此,它为开发人员提供了一个处理 SQL 任务的简单平台。

JPQL 是 Entity JavaBeans Query Language (EJBQL) 的扩展,为其添加了以下重要功能: -

  • 它可以执行连接操作。
  • 它可以批量更新和删除数据。
  • 它可以执行带有排序和分组子句的聚合函数。
  • 单值和多值结果类型。

JPQL 功能

  • 它是一种与平台无关的查询语言。
  • 它简单而强大。
  • 它可以与任何类型的数据库一起使用,例如 MySQL、Oracle。
  • JPQL 查询可以静态地声明到元数据中,也可以在代码中动态构建。

在 JPQL 中创建查询

JPQL 提供了两种可用于访问数据库记录的方法。 这些方法是: -

  • Query createQuery(String name) - EntityManager 接口的 createQuery() 方法用于创建 Query 接口的实例,用于执行 JPQL 语句。

此方法创建可以在业务逻辑中定义的动态查询。

  • Query createNamedQuery(String name) - EntityManager 接口的 createNamedQuery() 方法用于创建 Query 接口的实例,用于执行命名查询。

此方法用于创建可以在实体类中定义的静态查询。

现在,我们可以通过以下 Query 接口方法来控制查询的执行: -

  • int executeUpdate() - 此方法执行更新和删除操作。
  • int getFirstResult() - 此方法返回查询对象设置为检索的第一个定位结果。
  • int getMaxResults() - 此方法返回查询对象设置为检索的最大结果数。
  • java.util.List getResultList() - 此方法返回结果列表作为非类型化列表。
  • Query setFirstResult(int startPosition) - 此方法分配要检索的第一个结果的位置。
  • Query setMaxResults(int maxResult) - 此方法分配要检索的最大结果数。

下一个主题JPA JPQL 基本操作