Spring Data JPA は、より大規模な Spring Data ファミリの一部であり、JPA ベースのリポジトリの実装を容易にします。このモジュールは、JPA ベースのデータ アクセス レイヤーのサポート強化を扱います。データ アクセス テクノロジを使用する Spring ベースのアプリケーションの構築が容易になります。
アプリケーションのデータ アクセス層の実装は、長い間面倒でした。単純なクエリを実行したり、ページネーションや監査を実行したりするには、非常に多くの定型コードを作成する必要があります。 Spring Data JPA は、実際に必要な量まで労力を削減することで、データ アクセス レイヤーの実装を大幅に改善することを目的としています。開発者は、カスタム ファインダー メソッドを含むリポジトリ インターフェイスを作成すると、Spring が自動的に実装を提供します。
JPAエンティティのCRUDメソッドの実装
クエリメソッド名からの動的クエリ生成
クエリメソッドによるJPA NamedQueriesの透過的なトリガー
基本的なプロパティを提供する実装ドメイン基本クラス
透過的な監査のサポート (作成、最終変更)
カスタム リポジトリ コードを統合する可能性
カスタム名前空間との簡単な Spring 統合
このプロジェクトは Spring の行動規範に準拠しています。参加することにより、この行動規範を遵守することが期待されます。容認できない行為は [email protected] に報告してください。
Java で Spring Data Repositories を使用するアプリケーションの簡単なティーザーを次に示します。
public interface PersonRepository extends CrudRepository < Person , Long > {
List < Person > findByLastname ( String lastname );
List < Person > findByFirstnameLike ( String firstname );
}
@ Service
public class MyService {
private final PersonRepository repository ;
public MyService ( PersonRepository repository ) {
this . repository = repository ;
}
public void doWork () {
repository . deleteAll ();
Person person = new Person ();
person . setFirstname ( "Oliver" );
person . setLastname ( "Gierke" );
repository . save ( person );
List < Person > lastNameResults = repository . findByLastname ( "Gierke" );
List < Person > firstNameResults = repository . findByFirstnameLike ( "Oli%" );
}
}
@ Configuration
@ EnableJpaRepositories ( "com.acme.repositories" )
class AppConfig {
@ Bean
public DataSource dataSource () {
return new EmbeddedDatabaseBuilder (). setType ( EmbeddedDatabaseType . H2 ). build ();
}
@ Bean
public JpaTransactionManager transactionManager ( EntityManagerFactory emf ) {
return new JpaTransactionManager ( emf );
}
@ Bean
public JpaVendorAdapter jpaVendorAdapter () {
HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter ();
jpaVendorAdapter . setDatabase ( Database . H2 );
jpaVendorAdapter . setGenerateDdl ( true );
return jpaVendorAdapter ;
}
@ Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory () {
LocalContainerEntityManagerFactoryBean lemfb = new LocalContainerEntityManagerFactoryBean ();
lemfb . setDataSource ( dataSource ());
lemfb . setJpaVendorAdapter ( jpaVendorAdapter ());
lemfb . setPackagesToScan ( "com.acme" );
return lemfb ;
}
}
Maven 依存関係を追加します。
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}</ version >
</ dependency >
今後のメジャー バージョンの最新のスナップショットが必要な場合は、Maven スナップショット リポジトリを使用して、適切な依存関係バージョンを宣言してください。
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}-SNAPSHOT</ version >
</ dependency >
< repository >
< id >spring-snapshot</ id >
< name >Spring Snapshot Repository</ name >
< url >https://repo.spring.io/snapshot</ url >
</ repository >
Spring Data でお困りですか?ぜひお手伝いさせていただきます!
リファレンス ドキュメントと Javadoc を確認してください。
Spring の基本を学びましょう – Spring Data は Spring Framework 上に構築されています。豊富なリファレンス ドキュメントについては spring.io Web サイトを確認してください。 Spring を使い始めたばかりの場合は、いずれかのガイドを試してください。
アップグレードする場合は、Spring Data JPA リリース ノートを確認し、検討しているものまで下にスクロールしてください。詳細はそちらをご覧ください。 (最新の安定版リリースもチェックしてください)
質問する - 私たちは、 spring-data-jpa
でタグ付けされた質問について stackoverflow.com を監視します。 Gitter のコミュニティとチャットすることもできます。
GitHub 問題トラッカーで Spring Data JPA のバグを報告します。
Spring Data は、問題追跡システムとして GitHub を使用し、バグや機能リクエストを記録します。問題を提起したい場合は、以下の推奨事項に従ってください。
バグを記録する前に、問題トラッカーを検索して、誰かがすでに問題を報告していないかどうかを確認してください。
問題がまだ存在しない場合は、新しい問題を作成します。
問題レポートではできるだけ多くの情報を提供してください。使用している Spring Data のバージョンと JVM のバージョン、完全なスタック トレース、および関連する構成情報を知りたいと考えています。
コードを貼り付ける必要がある場合、またはスタック トレースを含める必要がある場合は、トリプル バックティックを使用してコードとしてフォーマットします。
可能であれば、問題を再現するテストケースまたはプロジェクトを作成してみてください。コードへのリンク、またはコードを含む圧縮ファイルを添付します。可能であればインメモリ データベースを使用するか、Testcontainers を使用してデータベースを設定します。
Spring Data (repo.spring.io のバイナリ) を使用するためにソースからビルドする必要はありませんが、最新かつ最高のものを試したい場合は、Maven ラッパーを使用して Spring Data を簡単にビルドできます。 JDK 17 以降も必要です。
$ ./mvnw clean install
通常のmvn
コマンドでビルドする場合は、Maven v3.8.0 以降が必要です。
プル リクエストを送信する場合は、CONTRIBUTING.adoc も参照してください。特に、最初の重要な変更を行う前に、寄稿者同意書に署名してください。
ドキュメントを構築すると、テストを実行せずにプロジェクトも構築されます。
$ ./mvnw clean install -Pantora
生成されたドキュメントはtarget/antora/site/index.html
から入手できます。
spring.io サイトには、Spring Data の使用方法を段階的に示すいくつかのガイドが含まれています。
JPA を使用したデータへのアクセス: Spring Data JPA を使用して JPA データ永続性を操作する方法を学びます。
「REST を使用した JPA データへのアクセス」は、リポジトリを介して JPA で保存されたデータを公開する REST Web サービスを作成するためのガイドです。
Spring Data Examples には、特定の機能をより詳細に説明するサンプル プロジェクトが含まれています。
Spring Data JPA は、Apache 2.0 ライセンスに基づいてリリースされたオープンソース ソフトウェアです。