アノテーションインターフェース Repository
コンテナー / ランタイムによって実装されるリポジトリインターフェースにアノテーションを付けます。
このクラスは、CDI が使用可能な場合の CDI Bean 定義アノテーションです。CDI またはカスタム依存性注入が使用されているかどうかに関係なく、jakarta.inject.Inject
アノテーションを介してアプリケーションでリポジトリ実装を利用できるようにする必要があります。
以下に例を示します。
@Repository public interface Products extends DataRepository<Product, Long> { @OrderBy("price") List<Product> findByNameLike(String namePattern); @Query("UPDATE Product SET price = price - (price * ?1) WHERE price * ?1 <= ?2") int putOnSale(float rateOfDiscount, float maxDiscount); ... }
@Inject Products products; ... found = products.findByNameLike("%Printer%"); numUpdated = products.putOnSale(0.15f, 20.0f);
モジュール Javadoc は Jakarta Data の overview
を提供します。
オプション要素の概要
オプション要素フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSE
リポジトリのエンティティクラスに存在するエンティティアノテーションの型をサポートする、利用可能な Jakarta Data プロバイダの使用を許可するprovider()
属性の値。static final StringSE
デフォルトのデータストアを使用することを示すdataStore()
属性の値。
フィールドの詳細
ANY_PROVIDER
リポジトリのエンティティクラスに存在するエンティティアノテーションの型をサポートする、利用可能な Jakarta Data プロバイダの使用を許可するprovider()
属性の値。- 関連事項:
DEFAULT_DATA_STORE
デフォルトのデータストアを使用することを示す
dataStore()
属性の値。Jakarta EE プロファイルまたはプラットフォームで実行し、エンティティアノテーションがリレーショナルデータベースを示している場合、デフォルトのデータストアは Jakarta EE のデフォルトのデータソースである
java:comp/DefaultDataSource
です。それ以外の場合、デフォルトのデータストアは Jakarta Data プロバイダーによって決定されます。ベンダーによっては、デフォルトのデータストアにベンダー固有の追加構成が必要になる場合があります。
- 関連事項:
要素の詳細
dataStore
StringSE dataStoreオプションで、リポジトリに使用するデータストアを示します。
dataStore
値を解釈する優先順位は、最高優先順位から最低優先順位の順で次のようになります。- Jakarta Config が使用可能な環境で実行し、値が Jakarta Config で見つかった場合、エラーが発生します。Jakarta Config との相互運用性は、Jakarta Data の将来のバージョン用に予約されています。
- Jakarta EE プロファイルまたはプラットフォームで実行しており、エンティティアノテーションがリレーショナルデータベースを示し、値が
java:
で始まり、jakarta.annotation.sql.DataSourceDefinition
の名前、データソースの JNDI 名、またはデータソースへのリソース参照と一致する場合、対応するjavax.sql.DataSource
がデータストアとして使用されます。同じ条件が満たされているが、値が永続性ユニット参照と一致する場合、対応するjakarta.persistence.PersistenceUnit
がデータストアとして使用されます。 - それ以外の場合、値は、Jakarta Data プロバイダーがベンダー固有の方法で解釈するためのベンダー固有の構成にリンクする識別子として機能します。Jakarta Data プロバイダーのドキュメントを参照してください。
この属性のデフォルト値は
DEFAULT_DATA_STORE
です。- 戻り値:
- データストアの名前または
DEFAULT_DATA_STORE
。
- デフォルト:
- ""
provider
StringSE providerリポジトリの実装を特定の Jakarta Data プロバイダの実装に制限します。
これは、複数の Jakarta Data プロバイダーが同じ型のエンティティアノテーションをサポートしている場合に便利です。この場合、プロバイダー属性によってどの Jakarta Data プロバイダーを使用する必要があるかが明確になります。Jakarta Data プロバイダーは、プロバイダーとして別のプロバイダー名を示す
Repository
アノテーションを無視する必要があります。この属性のデフォルト値は
ANY_PROVIDER
で、リポジトリのエンティティクラスに存在するエンティティアノテーションの型をサポートする利用可能な Jakarta Data プロバイダを使用できます。- 戻り値:
- Jakarta Data プロバイダーまたは
ANY_PROVIDER
の名前。
- デフォルト:
- ""