# JPA Buddy

> **Note: Database connections**
> Starting with IntelliJ IDEA 2026.2, the JPA Buddy plugin no longer provides its own database connection management. To connect to databases, use the [Database Tools and SQL](relational-databases.html) plugin instead.

JPA Buddy is an [IntelliJ IDEA plugin](https://plugins.jetbrains.com/plugin/15075-jpa-buddy) that helps developers work efficiently with Hibernate, EclipseLink, Spring Data JPA, Flyway, Liquibase, Lombok, MapStruct, and other related technologies in both Java and Kotlin.

> **Note:**
> Starting with 2023.3, the JPA Buddy plugin is maintained by JetBrains. Just as before, you can install it from JetBrains Marketplace. Free features are available in IntelliJ IDEA without the Ultimate subscription. [Features that were previously available as part of the paid
> plugin version](jpa-buddy-paid-features.html) are now available for free in IntelliJ IDEA with the Ultimate subscription.

The plugin lowers the barrier to entry into development with JPA, boosts developer’s productivity, and makes sure your code follows best practices.

JPA Buddy provides:

* [Intuitive wizards to work with JPA](jpa-buddy-entity-designer.html)

* [Automatic database versioning changelog generation](database-versioning.html)

* [Smart inspections to make the code better](jpa-buddy-entity-designer.html#inspections-1)

* [JPA Entities generation based on tables (reverse engineering)](reverse-engineering.html)

* [Visual DTO designer and mapper code generator](jpa-buddy-dto-generator.html)

* [Coding assistance to make development more straightforward and transparent](jpa-buddy-coding-assistance.html)

You can use JPA Buddy in any project with Spring Boot, Jakarta Enterprise Edition, Quarkus, Micronaut, or even without any framework.

Procedure: Install the JPA Buddy plugin

This functionality relies on the [JPA Buddy](https://plugins.jetbrains.com/plugin/15075)  plugin, which   you need to install and enable.

1. Press `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) to open settings and then select `Plugins`.

2. Open the Marketplace tab, find the JPA Buddy plugin, and click Install (restart the IDE if prompted).

Procedure: Install a specific version of the JPA Buddy plugin

Every version of JPA Buddy supports a range of IntelliJ IDEA versions. For example, JPA Buddy 2023.1 works correctly with IntelliJ IDEA 2022.2, 2022.3, and 2023.1. If you need to install JPA Buddy on the other version of IntelliJ IDEA, you need to install the plugin from disk.

1. Open the Versions tab on the [JPA Buddy](https://plugins.jetbrains.com/plugin/15075-jpa-buddy) page in JetBrains Marketplace.

2. Download the version of the plugin compatible with your version of IntelliJ IDEA.

3. Press `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) to open settings and then select `Plugins`.

4. On the  Plugins  page, click ![The Settings button](https://resources.jetbrains.com.cn/help/img/idea/2026.2/app.expui.general.settings.svg) Settings and then click  Install Plugin from Disk  .

![The Plugins settings page with the settings menu open, showing the "Install Plugin from Disk" option.](https://resources.jetbrains.com.cn/help/img/idea/2026.2/py_install_plugin_from_disk.png)

5. Select the plugin archive file and confirm your selection.

6. Click OK to apply the changes and restart the IDE if prompted.

## Supported databases

JPA Buddy supports the following databases:

* [H2](h2.html)

* [HSQLDB](hsqldb.html)

* [IBM Db2 LUW](ibm-db2-luw.html)

* [MariaDB](mariadb.html)

* [Microsoft SQL Server](microsoft-sql-server.html)

* [MySQL](mysql.html)

* [Oracle](oracle.html)

* [PostgreSQL](postgresql.html)

## Dependencies

JPA Buddy scans the project dependencies and enables the corresponding features. In a multi-module project, features are enabled based on the presence of the dependency within the module, not the entire project.

> **Note:**
> Every time you add dependencies in the Maven or Gradle build script, click ![Load the changes](https://resources.jetbrains.com.cn/help/img/idea/2026.2/maven.images.expui.build.mavenLoadChanges.svg) Load Maven Changes or ![Load the changes](https://resources.jetbrains.com.cn/help/img/idea/2026.2/gradle.icons.expui.gradleLoadChanges.svg) Sync Gradle Changes in the top-right part of the editor or press `Ctrl+Shift+O` (Windows), `Ctrl+Shift+O` (macOS), `Ctrl+Shift+O` (IntelliJ IDEA Classic (macOS)), `Ctrl+Shift+O` (macOS System Shortcuts), `Ctrl+Shift+O` (XWin), `Ctrl+Shift+O` (GNOME), `Ctrl+Shift+O` (KDE), `Ctrl+Shift+O` (Emacs), `Ctrl+Shift+O` (Sublime Text), `Ctrl+Shift+O` (Sublime Text (macOS)), `Ctrl+Shift+O` (NetBeans), `Ctrl+Shift+O` (Visual Studio), `Ctrl+Shift+O` (Visual Studio (macOS)), `Ctrl+Shift+O` (Eclipse), `Ctrl+Shift+O` (Eclipse (macOS)).

| Dependency | Features |
| --- | --- |
|  [Hibernate](https://mvnrepository.com/artifact/org.hibernate/hibernate-core)  |      * Create and edit entities, entity attributes, lifecycle callbacks, indexes, and constraints in both Java and Kotlin.    * Assign JPA converters and Hibernate custom types.    * Apply Lombok annotations to entities.    * Generate proper equals, hashCode, and toString.    |
|  [EclipseLink](https://mvnrepository.com/artifact/org.eclipse.persistence/eclipselink)  |
|  [Spring Data JPA](https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa)  |      * Create repositories for entities.    * Generate queries using visual constructors.    * Extract JPQL from derived method queries.    * Pick which fields to return from queries and generate projections.    |
|  [Hibernate                         Validator](https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator)  | Add Hibernate Validator annotations to Entity and DTO attributes via JPA Designer and DTO generator wizard respectively.  |
|  [Spring Boot Starter Validation](https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation)  |
|  [Hibernate Types](https://mvnrepository.com/artifact/com.vladmihalcea/hibernate-types-52)  | Assign Hibernate Custom Types to attributes via a code inspection with a quick fix (`Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (NetBeans), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS))).  |
|  [Liquibase](https://mvnrepository.com/artifact/org.liquibase/liquibase-core)  |      * Automatically generate Liquibase changelogs by comparing JPA model to a target database, model to snapshot, or DB to DB.    * Use visual designers for Liquibase changelogs    * Use coding assistance and autocomplete in Liquibase changelogs for table and column names. JPA Buddy takes these values directly from your data model.    |
|  [Flyway](https://mvnrepository.com/artifact/org.flywaydb/flyway-core)  |      * Generate Flyway migrations by comparing JPA model to a target database, model to snapshot, or DB to DB.    * Scaffold INSERT, UPDATE, and DELETE statements for your entities in SQL files.    |
|  [MapStruct](https://mvnrepository.com/artifact/org.mapstruct/mapstruct)  | Create MapStruct mappers to convert entities to DTOs and back. |
|  [Blazebit                         Persistence Entity View API](https://mvnrepository.com/artifact/com.blazebit/blaze-persistence-entity-view-api)  | Create Blaze Persistence Entity View for JPA Entity. |
|  [Blazebit Persistence Integration Spring Data Base](https://mvnrepository.com/artifact/com.blazebit/blaze-persistence-integration-spring-data-base)  | Create Spring Data JPA repository for Blaze Persistence Entity View. |
|  [Hibernate Envers](https://mvnrepository.com/artifact/org.hibernate/hibernate-envers)  |      * Generate database migration scripts for audit tables.    * Create Spring Data JPA revision repositories.    * Annotate entities and their fields for auditing via JPA Designer.    * Generate @RevisionEntity via convenient wizard.    |

## JPA Buddy visual tools

If JPA Buddy detects one of the supported dependencies, you can use the following visual tools:

![JPA Buddy visual tools](https://resources.jetbrains.com.cn/help/img/idea/2026.2/jpa-buddy-interface_without_persistence.png)

1. Editor toolbar

2. JPA Designer tool window

> **Tip:**
> Previously, the JPA Explorer tool window was also a part of JPA Buddy. Starting from IntelliJ IDEA 2024.2, most of the features from JPA Explorer are available in the [Persistence](persistence-tool-window.html) tool window.

## Issue Tracker

If you find a bug in JPA Buddy or want to suggest a feature or an improvement, feel free to create a ticket on [YouTrack](https://youtrack.jetbrains.com/issues/JPAB).

