# 持久性工具窗口

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

> **TL;DR**
> `视图 | 工具窗口 | Persistence`

> **Tip:**
> 如果您使用 IntelliJ IDEA Ultimate，   持久化   工具窗口是通过捆绑的 [Jakarta EE: Persistence (JPA)](https://plugins.jetbrains.com/plugin/20202) 插件内置的。
>
>
>
> 如果您在没有 Ultimate 订阅的情况下使用 IntelliJ IDEA，可以安装 [JPA Buddy](jpa-buddy.html) 插件，以启用   持久化   工具窗口。

如果您的项目中有 JPA 或 Spring Data 依赖项，您可以使用   持久化  工具窗口。 根据 您 项目的依赖关系，它可以显示以下元素：

* JPA ：查看和管理 JPA 项目：配置文件、 [持久化单元](#create-persistence-unit)、受管实体（持久化类和字段）、Spring 仓库以及 JPA 转换器。

* Spring Data JDBC ：查看 JDBC 映射的实体、属性、关系和仓库； [配置映射上下文](#create-mapping-context)。

* Spring Data MongoDB ：查看 MongoDB `@Document` 类。

* Liquibase ：查看 Liquibase 变更日志，创建新的变更日志，并运行 Liquibase update。

![持久化工具窗口](https://resources.jetbrains.com.cn/help/img/idea/2026.3/persistence_tool_window_with_jdbc.png)

> **Tip:**
> 在 IntelliJ IDEA Ultimate 中，如果安装了 [JPA Buddy](jpa-buddy.html)插件，您还可以从   持久化  工具窗口生成 DTO。

Procedure: 在持久化视图中打开实体

1. 在边栏中，点击实体图标 ![实体图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.icons.javaee.newui.persistenceEntity%4014x14.svg)。 如果您想导航到特定字段，请点击旁边对应的图标，例如 ![属性图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.icons.javaee.newui.persistenceAttribute%4014x14.svg) 或 ![参考图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.icons.javaee.newui.persistenceRelationship%4014x14.svg)。

2. 选择   在持久性视图中选择  。

![在持久性视图中选择](https://resources.jetbrains.com.cn/help/img/idea/2026.3/jpa_entity_open_in_persistence.png)

或者，将文本光标置于您的实体源代码处，然后点击 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.general.locate.svg) 在   持久化  工具窗口中。

Procedure: 导航到实体定义

若要从   持久化   工具窗口中的实体导航到编辑器中的相应源代码定义，请执行以下操作之一：

* 双击一个字段。

* 选择一个字段或类并按 `F4` (Windows), `⌘ ↓` (macOS), `F4` (IntelliJ IDEA Classic (macOS)), `F4` (macOS System Shortcuts), `F4` (XWin), `F4` (GNOME), `F4` (KDE), `F4` (Emacs), `F4` (Sublime Text), `F4` (Sublime Text (macOS)), `F4` (Visual Studio), `⌘ ↓` (Visual Studio (macOS)), `F4` (NetBeans), `F12` (Eclipse), `F3` (Eclipse (macOS))。

* 右键点击字段或类并选择   跳转到源  。

Procedure: 手动创建持久化单元

在大多数情况下，IntelliJ IDEA 会根据  `@Entity` 注解自动检测 JPA 实体。 如果不是这种情况，您可以手动创建持久化单元以添加必要的实体并将其映射到数据库。 添加的实体将在   持久化  工具窗口中可用，您可以从那里导航到编辑器中的源代码定义。

1. 在   持久化  工具窗口中，右键点击   JPA  。

2. 选择  `新建 | 持久化单元` 。

3. 在打开的   编辑持久性单元  窗口中，配置映射上下文：为上下文命名，选择数据库连接，并在   JPA 实体  下点击 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.general.add.svg)以添加要映射的类。

![映射上下文](https://resources.jetbrains.com.cn/help/img/idea/2026.3/jpa_add_persistence_unit_manually.png)

Procedure: 手动创建 JDBC 映射上下文

在大多数情况下，IntelliJ IDEA 会根据  `@Table` 注解或其 JDBC 仓库自动检测 JDBC 实体。 如果不是这种情况，您可以手动创建映射上下文以添加必要的 JDBC 实体并将其映射到数据库。 添加的实体将在   持久化  工具窗口中可用，您可以从那里导航到编辑器中的源代码定义。

1. 在   持久化  工具窗口中，右键点击   Spring Data JDBC  。

2. 选择  `新建 | 映射上下文` 。

3. 在打开的   编辑映射上下文  窗口中，配置映射上下文：为上下文命名，选择数据库连接，并在   JDBC 实体  下点击 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.general.add.svg)以添加要映射的类。

![映射上下文](https://resources.jetbrains.com.cn/help/img/idea/2026.3/jdbc_add_context_from_persistence_unit.png)

Procedure: 查看实体关系图 (ERD)

* 右键点击一个受管实体，然后选择   实体关系图  。

Procedure: 将持久性单元与数据源关联

1. 右键点击模块、持久化单元或实体，然后选择   指定数据源…  。

2. 选择必要的 [数据源](managing-data-sources.html#data_sources)用于相关的持久化单元，然后点击   OK  。

通过此关联，IntelliJ IDEA 将根据相应的数据源验证引用数据库表的源代码。 同时， [JPA 控制台](using-jpa-console.html) 将使用适当的数据库连接设置，您无需手动指定它们。

Procedure: 将持久化单元与命名策略关联

1. 右键点击模块、持久化单元或实体，然后选择   指定命名策略…  。

2. 请为相关的持久单元选择必要的命名策略并点击   OK  。

Procedure: 运行 JPQL 查询

* 右键点击持久化单元或实体并选择   JPA 控制台  或点击工具栏中的 ![控制台按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/database-plugin.icons.expui.consoleRun.svg) `Ctrl+Shift+F10` (Windows), `⌘ ⇧ F10` (macOS), `⌘ ⇧ F10` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ F10` (macOS System Shortcuts), `Ctrl+Shift+F10` (XWin), `Ctrl+Shift+F10` (GNOME), `Ctrl+Shift+F10` (KDE), `Ctrl+Shift+F10` (Emacs), `Ctrl+Shift+F10` (Sublime Text), `⌘ ⇧ F10` (Sublime Text (macOS)), `Ctrl+Shift+F10` (Visual Studio), `⌘ ⇧ F10` (Visual Studio (macOS)), `Ctrl+Shift+F10` (NetBeans), `Ctrl+Shift+F10` (Eclipse), `⌘ ⇧ F10` (Eclipse (macOS))。

这将打开 [JPA 控制台](using-jpa-console.html)，您可以在其中编写和执行 JPQL 查询。

## 逆向工程数据库架构

使用 IntelliJ IDEA，可以基于现有数据库架构创建 JPA 实体类和特性。 此功能性依赖于 IntelliJ IDEA Ultimate 中捆绑的 [逆向工程](reverse-engineering.html) 插件。

Procedure: 从数据库生成实体

1. 确保 IntelliJ IDEA 已 [连接到数据库](managing-data-sources.html#create_a_data_source)。

> **Tip:**
> 如果项目使用 [Spring](spring-support.html)、 [Micronaut](micronaut.html) 或 [Quarkus](quarkus.html)，可以直接从配置文件（  `application.properties`  或  `application.yml` ）快速创建数据库连接。
>
>
>
> 为此，请在编辑器中打开该文件，然后在编辑器装订区域中点击 ![数据库连接图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/javaee-persistence-impl.icons.expui.add-db-from-config.svg)   从现有属性创建新数据源  。

2. 在 [持久化]() 工具窗口中，右键点击持久化单元或映射上下文，然后选择  `![加号图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/intellij.platform.ide.expui.general.add.svg) 新建 | ![带蓝色表的数据库图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/intellij.platform.ide.expui.javaee.persistenceEntity.svg) 来自数据库的实体` 。

3. 在打开的 [从数据库获取实体对话框](reverse-engineering.html#entities-from-db-dialog)中，配置实体映射并点击   OK  。

Procedure: 从数据库生成实体特性

还可以基于现有实体类对应的数据库表中的列，为该实体类生成特性。

1. 确保 IntelliJ IDEA 已 [连接到数据库](managing-data-sources.html#create_a_data_source)。

2. 在 [持久化]() 工具窗口中，右键点击实体，然后选择  `![加号图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/intellij.platform.ide.expui.general.add.svg) 新建 | ![带蓝色表的数据库图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/intellij.platform.ide.expui.javaee.persistenceEntity.svg) 来自数据库的实体特性` 。

3. 在打开的 [从数据库获取实体对话框](reverse-engineering.html#entities-from-db-dialog)中，配置实体映射并点击   OK  。

