JPA Buddy — новый инструмент для разработчиков
Haulmont совместно с Baeldung выпускает новый инструмент для разработчиков — плагин для IntelliJ IDEA JPA Buddy. JPA Buddy поможет более эффективно работать над всеми проектами, где используется JPA и связанные с ним технологии: Hibernate, Spring Data JPA, Liquibase и т.п.
Почему появился плагин? В платформе Jmix (ex-CUBA Platform) есть конструктор сущностей, который позволяет быстро и легко разработать модель данных. Этот инструмент особенно популярен среди пользователей фреймворка — а их более 20 000. Нас часто спрашивали, можно ли использовать конструктор сущностей отдельно от самой платформы. Да, теперь можно — с JPA Buddy.
Работа над плагином заняла почти год. Сперва мы провели исследование и собрали юзкейсы по JPA и сопутствующим технологиям. Результат не удивил — среднестатистическое приложение сегодня написано на Spring Boot. Для ORM используется Hibernate, для манипулирования данными — Spring Data JPA, для управления миграцией базы данных — Liquibase или Flyway. Вдобавок к этому многие используют Lombok. На этом технологическом стеке мы и сконцентрировались.
При разработке JPA Buddy мы стремились:
- Минимизировать написание шаблонного кода вручную — плагин сделает это быстрее.
- Избавить пользователей от долгого чтения документации за счет интуитивно понятного интерфейса.
- Сохранить свободу выбора — плагин должен не навязывать какой-то определенный стиль написания кода, а предлагать различные варианты.
- Выявлять потенциальные проблемы и предлагать варианты исправления для самых распространенных как можно раньше, на этапе написания кода, а не исполнения.
- Обеспечить data-centric представление проекта и удобную навигацию между связанными объектами.
В первом релизе JPA Buddy мы реализовали множество функций и покрыли практически все аспекты разработки модели данных. Плагин помогает генерировать код, находить и исправлять потенциальные баги, проводить рефакторинг и выполнять другие шаблонные операции. JPA Buddy не требует дополнительных зависимостей, поэтому его можно использовать не только при начале проектов с нуля, но и там, где разработка уже идет давно. Для тех, кто использует Liquibase, у нас хорошие новости — он поддерживается в первой версии. Для тех, кто использует Flyway, новости не настолько хорошие — он в списке планов с самым высоким приоритетом.
Помимо этого мы планируем добавить:
- Hibernate-специфичные аннотации, например, @Where, @NaturalId, @Formula, аннотации для поиска и т. д.
- Визуальный конструктор запросов.
- Аудит с использованием Envers и Spring Data JPA.
- Реверс-инжиниринг схемы базы данных.
- Поддержку Kotlin.
- Поддержку Micronaut и Quarkus.
- Генерацию REST API и IU для CRUD операций.
В целом наши главные задачи сейчас — полировка существующей функциональности, а также добавление функций первой необходимости, которых в плагине пока нет. Поэтому будем рады вашим советам и пожеланиям. Устанавливайте JPA Buddy и пишите, какие у вас ощущения от использования (контактная форма, Twitter, чат в Discord).
На сайте JPA Buddy или в статье на Dzone можно подробнее узнать, что собой представляет плагин и как с ним работать.