2017-01-27 23 views
3

ばねブートスタータデータJPA依存性を使用し、org.springframework.data.jpa.repository.JpaRepositoryによってリポジトリクラスを拡張する場合、この「普通JPA」または休止状態でありますか?スプリングブートJpa:デフォルトとして休止状態?

違いは何ですか?

+0

JPAは仕様は、Hibernateは仕様の実装である(https://github.com/spring-projects/spring-data-examples/に基づく)で定義されたプロジェクトに基づいており、あなたの

src/main/resources/application.properties spring.datasource.url = jdbc:mysql://localhost:3306/db spring.datasource.username = root spring.datasource.password = root ... 

例内のすべての主要なデータソースプロパティを定義する必要があります。 –

+3

SpringデータJPAはJPAのデフォルト実装としてHibernateを使用します。 –

+0

「plain JPA」のようなものはありませんか?デフォルトでは休止状態が使用されていますか? –

答えて

8

JPAはインターフェイスであり、Hibernateが実装です。デフォルトでは、SpringはデフォルトのJPAベンダーとしてHibernateを使用します。必要に応じて、他の参照実装を使用することもできます。 SpringプロジェクトのJava PersistenceについてはEclipseLinkを参照してください。ドキュメントから

2

春データJPAは大幅に実際に必要 だ量に労力を減らすことによって データアクセス層の実装を改善することを目指しています。開発者は、カスタムファインダメソッドを含む のリポジトリインタフェースを作成し、Springは自動的に の実装を提供します。

春データJPAは、のような高レベルのAPIを働き、あなたは基礎となる永続性プロバイダがどうなるかを指定する必要があります。

<dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
      <exclusions> 
       <exclusion> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-entitymanager</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>org.eclipse.persistence</groupId> 
      <artifactId>org.eclipse.persistence.jpa</artifactId> 
     </dependency> 
Mavenの

1)Eclipseのリンクコンフィグ

春の設定

@SpringBootApplication 
public class Application extends JpaBaseConfiguration { 

    protected Application(DataSource dataSource, JpaProperties properties, 
      ObjectProvider<JtaTransactionManager> jtaTransactionManagerProvider, 
      ObjectProvider<TransactionManagerCustomizers> transactionManagerCustomizers) { 
     super(dataSource, properties, jtaTransactionManagerProvider, transactionManagerCustomizers); 
    } 


    @Override 
    protected AbstractJpaVendorAdapter createJpaVendorAdapter() { 
     return new EclipseLinkJpaVendorAdapter(); 
    } 

2)にHibernateコンフィグ

Mavenの

<dependency> 
    <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
      <exclusions> 
       <exclusion> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-entitymanager</artifactId> 
       </exclusion> 
     </exclusions> 
</dependency> 

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
</dependency> 

スプリングセットアップ

@SpringBootApplication 
class SimpleConfiguration {} 

ザッツ設定することが必要とされているすべての - 休止状態のプロバイダー。もちろん、