Jakarta Data
Jakarta Data 是 Jakarta EE 生态系统中的一个规范,专注于数据库操作。 它提供了一个 API,可用于创建仓库:具有插入、更新、删除和查询数据库实体方法的接口。
Jakarta Data 的一个关键特性是无需手动实现仓库方法。 只要使用 Jakarta Data API 的注解和关键字,兼容的 实现库 会提供底层逻辑并将方法声明转为实际数据库调用。
IntelliJ IDEA 为 Jakarta Data 提供以下支持:
仓库的编码辅助:根据实体类补全和校验方法名称,并根据方法名称校验形参
在 JPA 控制台中执行仓库方法
可在 Beans 工具窗口 中进行仓库间导航
为 Jakarta Data Query Language (JDQL) 提供辅助:语法高亮显示、基于实体类的语句自动补全以及校验语句
启用 Jakarta EE: Data 插件
此功能性依赖于 Jakarta EE: Data 插件,该插件在 IntelliJ IDEA 旗舰版 中默认捆绑并启用。 如果相关功能不可用,请确保您没有禁用插件。
按 Ctrl+Alt+S 打开设置,然后选择 。
找到 Jakarta EE: Data 插件,然后点击 启用。
将 Jakarta Data 添加到项目中
要在 IntelliJ IDEA 启用 Jakarta Data 支持,需要将其 API 添加到项目依赖项中。 它提供声明仓库及仓库方法所需的注解、接口和关键字。 但要让这些仓库可用,还需要以下依赖项:
提供实体注解的 API,例如 Jakarta Persistence (JPA) 或 Jakarta NoSQL。 需要它来定义仓库方法操作的实体类。
一个实现库。 它实现仓库方法,管理实体生命周期,并处理与数据库的通信。 它将抽象仓库方法转化为实际数据库操作。
本指南中,根据数据库是 关系型 还是 非关系型 ,使用如下依赖组合:
数据库类型 | API | 实现 |
|---|---|---|
关系型 | Jakarta Data + Jakarta Persistence (JPA) | |
非关系型 | Jakarta Data + Jakarta NoSQL |
创建包含 Jakarta Data 的新 Jakarta EE 项目
打开 新建项目 向导:
如果位于主屏幕,请选择 。
如果已打开另一个项目,请转到 。
从左侧的 生成器 列表中,选择
Jakarta EE。

设置 Jakarta EE 项目设置。
准备就绪后,点击 下一步。
从 版本 下拉菜单中选择要使用的 Jakarta EE 版本。
从 依赖项 列表中选择 数据。 然后根据数据库类型,选择以下项:
关系型: 持久化(JPA) 和 Hibernate。
非关系型: NoSQL。 创建项目后,需要 手动添加 Eclipse JNoSQL。

点击 创建。
有关创建 Jakarta EE 项目的更多信息,例如如何设置应用程序服务器,请参阅 教程:您的第一个 Jakarta EE 应用程序。
将 Jakarta Data 添加到现有项目中
在编辑器中打开构建文件( pom.xml 或 build.gradle ,具体取决于项目中使用的 构建工具)。
请根据数据库类型添加以下依赖项:
- 关系型数据库
- <!-- 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.4.5.Final</version> </dependency>
Hibernate 可能需要额外依赖项。 请参考 官方文档 获取指导。
- 非关系型数据库
- <!-- Jakarta Data specification --> <dependency> <groupId>jakarta.data</groupId> <artifactId>jakarta.data-api</artifactId> <version>1.0.1</version> </dependency> <!-- Jakarta NoSQL specification --> <dependency> <groupId>jakarta.nosql</groupId> <artifactId>jakarta.nosql-api</artifactId> <version>1.0.1</version> </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 implementation('jakarta.data:jakarta.data-api:1.0.1') // Jakarta Persistence specification implementation('jakarta.persistence:jakarta.persistence-api:3.2.0') // Implementation (Hibernate) implementation('org.hibernate.orm:hibernate-core:7.4.5.Final')
Hibernate 可能需要额外依赖项。 请参考 官方文档 获取指导。
- 非关系型数据库
- // Jakarta Data specification implementation('jakarta.data:jakarta.data-api:1.0.1') // Jakarta NoSQL specification implementation('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 依赖项。 请参考 官方文档 获取指导。
- 关系型数据库
- // Jakarta Data specification implementation("jakarta.data:jakarta.data-api:1.0.1") // Jakarta Persistence specification implementation("jakarta.persistence:jakarta.persistence-api:3.2.0") // Implementation (Hibernate) implementation("org.hibernate.orm:hibernate-core:7.4.5.Final")
Hibernate 可能需要额外依赖项。 请参考 官方文档 获取指导。
- 非关系型数据库
- // Jakarta Data specification implementation("jakarta.data:jakarta.data-api:1.0.1") // Jakarta NoSQL specification implementation("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 依赖项。 请参考 官方文档 获取指导。
按 Ctrl+Shift+O 导入更改。
创建 Jakarta Data 仓库
Jakarta Data 仓库是带有 @Repository 注解的接口,用于声明实体的数据库操作,如查找、插入、更新或删除。 通常一个仓库管理一个实体类。
打开 项目 工具窗口(Alt+1 ),转到要创建仓库的软件包。
右键点击该软件包并选择 。
在 新建 Java 类 弹窗中,选择 界面 ,为仓库设置名称,然后按 回车键。
用
@Repository注解接口声明。 如有提示,导入该类。
现在 IntelliJ IDEA 可以将该接口识别为 Jakarta Data 仓库,并提供编码辅助。
(可选)扩展 Jakarta Data 的内置仓库之一:
DataRepository :可指定实体类及其 ID 类型,但不提供预定义方法。
BasicRepository :在
DataRepository基础上,提供查找、保存和删除实体的基本方法。CrudRepository :在
BasicRepository基础上,提供用于更新和插入实体的其他方法。
创建仓库后,即可开始声明方法。 请注意,为了让 Jakarta Data 识别方法所代表的数据库操作类型,需要使用其支持的声明模式之一:注解(例如 @Find )或方法名称中的特定前缀(例如 findByName)。 如需了解声明仓库方法的详情,请参阅 Jakarta Data API 文档。
运行仓库方法
如果项目将 Jakarta Data 与 Jakarta Persistence 结合使用,IntelliJ IDEA 可以让您测试仓库方法,而无需启动整个应用程序。 可以改为调用专用操作,将方法转换为数据库查询,并在 JPA 控制台中执行。
支持以下方法类型:
查询 从方法名称派生的方法
带有
@Query注解且定义显式 JPQL 或 JDQL 查询的方法带有
@Find注解的方法
JPA 控制台 会针对 数据库工具窗口中的数据源运行查询。 如果存在多个数据源,IDE 会检查在 Persistence 工具窗口中分配给持久性单元的是哪一个。 如果 IntelliJ IDEA 无法确定要使用哪个数据源,系统会提示选择一个。
从装订区域运行 Jakarta Data 查询方法
在编辑器中打开 Jakarta Data 仓库。
在装订区域中,点击查询方法旁边的
在控制台中运行查询。
如果查询接受形参, 参数 对话框将打开。 指定值,然后点击 执行。
JPA 控制台 会执行查询并 显示其结果。

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

在专用编辑器中编辑 JDQL 查询
在专用编辑器中打开 JDQL,有助于专注于查询,而不受周围编码影响。 如果查询较复杂或跨多行,这将非常有用。
将文本光标放在 JDQL 查询位置。
按 Alt+Enter (或点击
显示上下文操作 ),然后选择 编辑 Jakarta Data QL 片段。
IntelliJ IDEA 会在专用片段编辑器中打开查询。
