IntelliJ IDEA 2026.1 Help

Jakarta Data

Jakarta DataJakarta EE 生态系统中的一个规范,专注于数据库操作。 它提供了一个 API,可用于创建仓库:具有插入、更新、删除和查询数据库实体方法的接口。

Jakarta Data 的一个关键特性是无需手动实现仓库方法。 只要使用 Jakarta Data API 的注解和关键字,兼容的 实现库 会提供底层逻辑并将方法声明转为实际数据库调用。

IntelliJ IDEA 为 Jakarta Data 提供以下支持:

  • 仓库的编码辅助:根据实体类补全和校验方法名称,并根据方法名称校验形参

  • 可在 Beans 工具窗口 中进行仓库间导航

  • Jakarta Data Query Language (JDQL) 提供辅助:语法高亮显示、基于实体类的语句自动补全以及校验语句

启用 Jakarta EE: Data 插件

此功能性依赖于 Jakarta EE: Data 插件,该插件在 IntelliJ IDEA Ultimate 中默认捆绑并启用。 如果相关功能不可用,请确保您没有禁用插件。

  1. Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 已安装 选项卡,找到 Jakarta EE: Data 插件,并选中插件名称旁的复选框。

将 Jakarta Data 添加到项目中

要在 IntelliJ IDEA 启用 Jakarta Data 支持,需要将其 API 添加到项目依赖项中。 它提供声明仓库及仓库方法所需的注解、接口和关键字。 但要让这些仓库可用,还需要以下依赖项:

  • 提供实体注解的 API,例如 Jakarta Persistence (JPA)Jakarta NoSQL。 需要它来定义仓库方法操作的实体类。

  • 一个实现库。 它实现仓库方法,管理实体生命周期,并处理与数据库的通信。 它将抽象仓库方法转化为实际数据库操作。

本指南中,根据数据库是 关系型 还是 非关系型 ,使用如下依赖组合:

数据库类型

API

实现

关系型

Jakarta Data + Jakarta Persistence (JPA)

Hibernate

非关系型

Jakarta Data + Jakarta NoSQL

Eclipse JNoSQL

创建包含 Jakarta Data 的新 Jakarta EE 项目

  1. 打开 新建项目 向导:

    • 在欢迎屏幕上,点击 新建项目

    • 在 IDE 中,转到 文件 | 新建 | 项目

  2. 生成器 列表中选择 Jakarta EE

    创建新的 Jakarta EE 项目
  3. 设置 Jakarta EE 项目设置

  4. 进入向导的下一步。 在左上角选择要使用的 Jakarta EE 版本。

  5. 依赖项 列表中选择 数据。 然后根据数据库类型,选择以下项:

    新的 Jakarta EE 项目与 JPA 和 Hibernate
  6. 点击 创建

有关创建 Jakarta EE 项目的更多信息,例如如何设置应用程序服务器,请参阅 教程:您的第一个 Jakarta EE 应用程序

将 Jakarta Data 添加到现有项目中

  1. 在编辑器中打开构建文件(根据项目中所用构建工具,可能是 pom.xml build.gradle )。

  2. 请根据数据库类型添加以下依赖项:

    关系型数据库
    <!-- Jakarta Data specification --> <dependency> <groupId>jakarta.data</groupId> <artifactId>jakarta.data-api</artifactId> <version>1.0.1</version> </dependency> <!-- Jakarta Persistence specification --> <dependency> <groupId>jakarta.persistence</groupId> <artifactId>jakarta.persistence-api</artifactId> <version>3.2.0</version> </dependency> <!-- Implementation (Hibernate) --> <dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version>7.2.4.Final</version> </dependency>

    Hibernate 可能需要额外依赖项。 请参考 官方文档 获取指导。

    非关系型数据库
    <!-- Jakarta Data specification --> <dependency> <groupId>jakarta.data</groupId> <artifactId>jakarta.data-api</artifactId> <version>1.0.1</version> <scope>provided</scope> </dependency> <!-- Jakarta NoSQL specification --> <dependency> <groupId>jakarta.nosql</groupId> <artifactId>jakarta.nosql-api</artifactId> <version>1.0.1</version> <scope>provided</scope> </dependency> <!-- Implementation (Eclipse JNoSQL) --> <dependency> <groupId>org.eclipse.jnosql.mapping</groupId> <artifactId>jnosql-mapping-document</artifactId> <version>1.1.12</version> </dependency>

    不同的 NoSQL 数据库需要不同的 Eclipse JNoSQL 依赖项。 请参考 官方文档 获取指导。

    关系型数据库
    // Jakarta Data specification compileOnly('jakarta.data:jakarta.data-api:1.0.1') // Jakarta Persistence specification compileOnly('jakarta.persistence:jakarta.persistence-api:3.2.0') // Implementation (Hibernate) implementation('org.hibernate.orm:hibernate-core:7.2.4.Final')

    Hibernate 可能需要额外依赖项。 请参考 官方文档 获取指导。

    非关系型数据库
    // Jakarta Data specification compileOnly('jakarta.data:jakarta.data-api:1.0.1') // Jakarta NoSQL specification compileOnly('jakarta.nosql:jakarta.nosql-api:1.0.1') // Implementation (Eclipse JNoSQL) implementation('org.eclipse.jnosql.mapping:jnosql-mapping-document:1.1.12')

    不同的 NoSQL 数据库需要不同的 Eclipse JNoSQL 依赖项。 请参考 官方文档 获取指导。

  3. Ctrl+Shift+O 导入更改。

有关使用构建工具的详细信息,请参阅 MavenGradle

创建 Jakarta Data 仓库

Jakarta Data 仓库是带有 @Repository 注解的接口,用于声明实体的数据库操作,如查找、插入、更新或删除。 通常一个仓库管理一个实体类。

  1. 打开 项目 工具窗口(Alt+1 ),转到要创建仓库的软件包。

  2. 右键点击该软件包并选择 新建 | Java 类

  3. 新建 Java 类 弹窗中,选择 界面 ,为仓库设置名称,然后按 回车键

  4. @Repository 注解接口声明。 如有提示,导入该类。

    已创建带有 Repository 注解及导入的接口

    现在 IntelliJ IDEA 可以将该接口识别为 Jakarta Data 仓库,并提供编码辅助。

  5. (可选)扩展 Jakarta Data 的内置仓库之一:

    • DataRepository :可指定实体类及其 ID 类型,但不提供预定义方法。

    • BasicRepository :在 DataRepository 基础上,提供查找、保存和删除实体的基本方法。

    • CrudRepository :在 BasicRepository 基础上,提供用于更新和插入实体的其他方法。

创建仓库后,即可开始声明方法。 请注意,为了让 Jakarta Data 识别方法所代表的数据库操作类型,需要使用其支持的声明模式之一:注解(例如 @Find )或方法名称中的特定前缀(例如 findByName)。 如需了解声明仓库方法的详情,请参阅 Jakarta Data API 文档

使用 JDQL 查询

Jakarta Data Query Language (JDQL) 允许为仓库方法编写显式查询,作为按方法名称查询或使用其他注解之外的另一种选择。 在 @Query 注解内输入 JDQL 时,IntelliJ IDEA 会自动识别、根据实体类建议字段名称,并校验查询语句。

在编写 JDQL 查询时自动建议 releaseYear 字段

在专用编辑器中编辑 JDQL 查询

在专用编辑器中打开 JDQL,有助于专注于查询,而不受周围编码影响。 如果查询较复杂或跨多行,这将非常有用。

  1. 将文本光标放在 JDQL 查询位置。

  2. Alt+Enter (或点击 显示上下文操作​​ ),然后选择 编辑 Jakarta Data QL 片段

    IntelliJ IDEA 会在专用片段编辑器中打开查询。

    在专用片段编辑器中编辑 JDQL 查询
2026年 5月 8日