IntelliJ Ultimate の機能
JPA Buddy は無料の IntelliJ プラグインです。 IntelliJ IDEA Ultimate 契約者のみが利用できる機能がいくつかあります。 このセクションでは、IntelliJ IDEA Ultimate で利用できる機能が開発者による開発プロセスの加速やルーチン作業にかかる時間の大幅な節約にどのように役立つかを説明します。
Liquibase
diff Liquibase changelog 生成 は、ルーチン作業の多くの時間を節約できる非常に便利な機能です。 これを使用することで、JPA モデルに準拠した、データベースを更新するために必要なコードを含む Liquibase changelog を自動生成できます。 diff changelog は、JPA エンティティ とデータベース、2 つのデータベース、または一方の VCS ブランチの JPA エンティティ と別の VCS ブランチの JPA エンティティ を比較して生成できます。ターゲット データベースにアクセスできない場合にも非常に便利です。
また、JPA Buddy は、開発者がデータベーススキーマを最初から生成するのに役立つ 初期化スキーマ Liquibase 変更ログアクションを提供します。 ソースとして JPA エンティティまたは既存のデータベースを使用できます。 その結果、スキーマの初期化に必要なすべてのコマンドを含む Liquibase 変更ログを取得できます。 この機能は、Liquibase を既存のアプリケーションに統合する場合、または大量の古い変更ログを実行する代わりに DB 初期化用の単一スクリプトを生成する場合に非常に役立ちます。 また、新しい開発環境やテスト環境をセットアップする場合にも役立ちます。
Flyway
Flyway バージョン管理マイグレーション生成 は、ルーチン作業の多くの時間を節約できる非常に便利な機能です。 これを使用することで、JPA モデルに準拠した、データベースを更新するために必要な DDL を含むマイグレーションを自動生成できます。 このような差分 DDL を含む Flyway マイグレーションは、JPA エンティティ とデータベース、2 つのデータベース、または一方の VCS ブランチの JPA エンティティ と別の VCS ブランチの JPA エンティティ を比較して生成できます。ターゲット データベースにアクセスできない場合にも非常に便利です。
また、JPA Buddy は、開発者がデータベーススキーマを最初から生成するのに役立つ 初期スキーマ Flyway の移行アクションを提供します。 ソースとして JPA エンティティまたは既存のデータベースを使用できます。 その結果、スキーマの初期化に必要な DDL を含む Flyway バージョン管理された移行が得られます。 この機能は、Flyway を既存のアプリケーションに統合する場合や、大量の古い移行を実行する代わりに DB 初期化用の単一のスクリプトを生成する場合に非常に役立ちます。 また、新しい開発環境やテスト環境をセットアップする場合にも役立ちます。
エンティティ別の DDL
エンティティ別の DDL を生成アクションを使用すると、開発者は数回クリックするだけでエンティティを DDL ステートメントに変換できます。 データベーススキーマを最初から作成するための初期化スクリプトと、既存のデータベースを JPA エンティティに従って有効な状態に更新するための差分 DDL の両方を生成できます。 また、この機能は、エラーが発生しやすい spring.jpa.hibernate.ddl-auto プロパティの使用を置き換えるのに非常に便利です。 JPA Buddy アクションを使用すると、実行前に DDL を完全に制御し、適切な Java <-> DB タイプのマッピングを設定し、属性コンバーターと Hibernate タイプを使用してフィールドをマップし、ドロップステートメントを生成するなど、さまざまなことが可能になります。
リバースエンジニアリング
最初にデータベースを設計してから、JPA エンティティをコーディングしてテーブルをマップする場合、または既存のデータベース上でアプリケーションを開発する場合、この機能は非常に便利で、日常的な作業にかかる時間を大幅に節約できます。 DB アクションからのエンティティを使用すると、数回クリックするだけで、選択した DB テーブルとその属性を、制約、インデックス、列プロパティなどを含む JPA エンティティに変換できます。 また、ManyToOne、OneToOne、OneToMany、ManyToMany 関連付けのマッピングもサポートしています。 この機能の最も優れた点は、エンティティ全体を再生成するのではなく、既存のエンティティ宣言に新しいフィールドを追加することです。
DTO ジェネレーター
DTO は Web アプリにとって不可欠ですが、その実装には定型文が必要になります。 エンティティをほぼコピーする数十のクラスには、それぞれにマッパーが付属しています。 DTO の生成機能を使用すると、日常業務の時間を節約できます。 これを使用すると、JPA エンティティ定義に基づいて DTO および MapStruct マッパーを作成できます。
しかし、それだけではありません。 時間が経つにつれて、エンティティが変化する可能性があり、それに応じて DTO を変更する必要があります。 JPA Buddy はこの問題にも対処します。 エンティティをその DTO と同期したり 、その逆を行ったりすることができます。
また、JPA Buddy は、任意の java/kotlin クラスから JPA エンティティを生成するのに役立つ POJO からのエンティティアクションを提供します。 この機能は、API ファーストアプローチ (最初に API の DTO を定義し、後でデータモデルを実装する) に従ってアプリケーションを開発する場合に役立ちます。