web-dev-qa-db-ja.com

spring-data-jpaとspring-boot-starter-data-jpaの違い

これは質問するのに最適な質問ではないかもしれませんが、Springブート用に2つのSpring JPAがあることに気付きました。それらはどう違いますか。現在、SpringBoot 1.5.3プロジェクトを休止状態とともにセットアップしようとしています。 spring-boot-starter-data-jpaを使用して、以前にJPAでSpringbootをセットアップしたことを覚えています。

私が見たオンラインの例のほとんどは、starter.spring.ioと同様に、spring jpaの依存関係を提供します。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

しかし、既存のプロジェクトの1つで、spring-data-jpaに出会いました

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>1.11.4.RELEASE</version>
</dependency>

少しグーグルをやっても、違うかどうかは分からない。

JPAを追加した以前のすべてのプロジェクトでは、JPA 2.1/Hibernateを使用していました。そのため、新しいSpringBootアプリケーションで2つのうちどちらを使用するかわからないのです。

22
Acewin

docs で述べたように、starter oneは、この特定のライブラリに必要なすべての依存関係の便利なインライン化ツールです。つまり、手動で記述するのではなく、他の依存関係を含めます。

spring-boot-starter-data-jpapom.xml 、そこにspring-data-jpa他の多くの依存関係として。

Spring Boot Startersは、アプリケーションに含めることができる便利な依存関係記述子のセットです。サンプルコードを探し回ったり、依存関係記述子の貼り付けロードをコピーしたりすることなく、必要なすべてのSpringおよび関連テクノロジのワンストップショップを取得できます。たとえば、SpringとJPAを使用してデータベースアクセスを開始する場合は、プロジェクトにspring-boot-starter-data-jpa依存関係を含めるだけでよいのです。

27
Artem Novikov

ここでspring-boot-starter-data-jpaのpom.xmlを確認してください: https://github.com/spring-projects/spring-boot/blob/master/spring-boot-starters/spring-boot -starter-data-jpa/pom.xml

「HibernateでSpring Data JPAを使用するためのスターター」という説明タグを読んでください。

そのため、spring-boot-starter-data-jpaは実装としてHibernateでSpring Data JPAを使用します。これは、いわばハードコーディングされています。

これで、pom.xmlでspring-data-jpaを確認すると、実装に依存しません。また、プロジェクトでSpring Data JPAを使用するには、1つmustが使用する実装を提供する必要があります。そうしないとエラーが発生します。

Spring Data JPAのドキュメントには、現在Hibernate 5(Apache)OpenJPA 2.4およびEclipseLink 2.6.1がサポートされていると記載されています。ここをお読みください: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#new-features.1-10-

3
Sanora

Spring Bootは、spring-boot-starter-data-jpaスターターを提供して、スプリングアプリケーションをリレーショナルデータベースに効率的に接続します。スターターには追加の依存関係があります。

spring-data-jpaは、spring-boot-starter-data-jpaの依存関係として使用されます。スプリングブートバージョン1.5.3を使用しているため、 here をご覧ください。

Spring Dataファミリーの一部であるspring-data-jpaを使用すると、JPAベースのリポジトリを簡単に実装できます。このモジュールは、JPAベースのデータアクセスレイヤーの拡張サポートを扱います。これにより、データアクセステクノロジーを使用するSpringベースのアプリケーションを簡単に構築できます。

1