Jakarta Data
Jakarta Data は Jakarta EE エコシステムにおけるデータベース操作に特化した仕様です。 API は、リポジトリ作成用に利用できる、データベース内のエンティティを挿入、更新、削除、およびクエリするメソッドを持つインターフェースなどを提供します。
Jakarta Data の鍵となる特徴は、リポジトリメソッドを手動で実装する必要がないことです。 Jakarta Data API のアノテーションやキーワードを使う限り、互換性のある 実装ライブラリが基礎となるロジックを提供し、メソッド宣言を動作するデータベース呼び出しへ変換します。
IntelliJ IDEA は Jakarta Data に対して次のサポートを提供します:
リポジトリ向けコーディング支援:エンティティクラスに基づくメソッド名の補完と検証、メソッド名に基づくパラメーターの検証
Beans ツールウィンドウでのリポジトリ間ナビゲーション
Jakarta Data Query Language (JDQL) の支援:構文ハイライト、エンティティクラスに基づくステートメントの自動補完、ステートメントの検証
Jakarta EE: Data プラグインの有効化
この機能は、デフォルトで IntelliJ IDEA Ultimate にバンドルされて有効化されている Jakarta EE: Data プラグインに依存しています。 関連機能が利用できない場合は、プラグインを無効化していないことを確認してください。
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 プロジェクトを作成する
新規プロジェクト ウィザードを開く:
ウェルカム画面で、 新規プロジェクト をクリックします。
IDE で、 に移動します。
ジェネレーター リストから 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.2.4.Final</version> </dependency>
Hibernate には追加の依存関係が必要な場合があります。 詳細は 公式ドキュメントをご参照ください。
- 非リレーショナルデータベース
- <!-- Jakarta Data specification --> <dependency> <groupId>jakarta.data</groupId> <artifactId>jakarta.data-api</artifactId> <version>1.0.1</version> <scope>provided</scope> </dependency> <!-- Jakarta NoSQL specification --> <dependency> <groupId>jakarta.nosql</groupId> <artifactId>jakarta.nosql-api</artifactId> <version>1.0.1</version> <scope>provided</scope> </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 compileOnly('jakarta.data:jakarta.data-api:1.0.1') // Jakarta Persistence specification compileOnly('jakarta.persistence:jakarta.persistence-api:3.2.0') // Implementation (Hibernate) implementation('org.hibernate.orm:hibernate-core:7.2.4.Final')
Hibernate には追加の依存関係が必要な場合があります。 詳細は 公式ドキュメントをご参照ください。
- 非リレーショナルデータベース
- // Jakarta Data specification compileOnly('jakarta.data:jakarta.data-api:1.0.1') // Jakarta NoSQL specification compileOnly('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 クラス ポップアップで インターフェース を選択し、リポジトリお名前を入力して Enter を押します。
インターフェース宣言に
@Repositoryをアノテートします。 求められた場合はそのクラスをインポートしてください。
これで IntelliJ IDEA はそのインターフェースを Jakarta Data リポジトリとして認識し、コーディング支援が利用できます。
(任意)Jakarta Data の組み込みリポジトリのいずれかを継承します:
DataRepository: エンティティクラスとその ID 型を指定できますが、あらかじめ定義されたメソッドはありません。
BasicRepository:
DataRepositoryを拡張し、検索・保存・削除の基本メソッドを提供します。CrudRepository:
BasicRepositoryを拡張し、更新・挿入用の追加メソッドを提供します。
リポジトリを作成したら、メソッドの宣言を始められます。 Jakarta Data でメソッドがどの種別のデータベース操作かを認識させるには、サポートされている宣言パターンのいずれか―アノテーション(例: @Find )またはメソッドお名前に特定のプレフィックス(例: findByName )―を使用する必要があります。 リポジトリメソッドの宣言方法の詳細は、 Jakarta Data API ドキュメントをご参照ください。
JDQL クエリの操作
Jakarta Data Query Language (JDQL) を使うと、リポジトリメソッド向けのクエリをメソッドお名前によるクエリや他のアノテーションなしで明示的に記述できます。 JDQL を @Query アノテーション内で入力すると、IntelliJ IDEA が自動で認識し、エンティティクラスに基づいてフィールドお名前をサジェストし、クエリステートメントの検証を行います。

専用エディターで JDQL クエリを編集する
JDQL を専用エディターで開くことで、周囲のコードを気にせずクエリの作成に集中できます。 クエリが複雑または複数行に渡る場合に便利です。
JDQL クエリにキャレットを置いてください。
Alt+Enter (または
コンテキストアクションの表示 をクリック)を押して、 Jakarta Data QL フラグメントを編集する を選択します。
IntelliJ IDEA は専用のフラグメントエディターでクエリを開きます。
