Springを使用したEclipseLinkのガイド
1. 概要
デフォルトでは、SpringDataはデフォルトのJPA実装プロバイダーとしてHibernateを使用します。
ただし、Hibernateは確かに私たちが利用できる唯一のJPA実装ではありません。
この記事では、EclipseLinkをSpring DataJPAの実装プロバイダーとしてセットアップするために必要な手順を説明します。
2. Mavenの依存関係
Springアプリケーションで使用するには、プロジェクトのpom.xmlにorg.eclipse.persistence.jpa依存関係を追加する必要があります。
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.7.0</version>
</dependency>
デフォルトでは、SpringDataにはHibernate実装が付属しています。
代わりにEclipseLinkをJPAプロバイダーとして使用したいので、もう必要ありません。
したがって、依存関係を除外することで、プロジェクトから削除できます。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</exclusion>
</exclusions>
</dependency>
次のステップは、JPA実装としてEclipseLinkを使用することをSpringFrameworkに通知することです。
3. スプリング構成
JpaBaseConfigurationは、SpringBootでJPAのBeanを定義する抽象クラスです。 カスタマイズするには、 createJpaVendorAdapter()や getVendorProperties()などのメソッドを実装する必要があります。
Springは、HibernateJpaAutoConfigurationと呼ばれるHibernateの構成実装をすぐに提供します。 ただし、 EclipseLink、の場合、カスタム構成を作成する必要があります。
まず、使用するJPA実装を指定する createJpaVendorAdapter()メソッドを実装する必要があります。
Springは、このメソッドで使用するEclipseLinkJpaVendorAdapterと呼ばれるEclipseLink用のAbstractJpaVendorAdapterの実装を提供します。
@Configuration
public class EclipseLinkJpaConfiguration extends JpaBaseConfiguration {
@Override
protected AbstractJpaVendorAdapter createJpaVendorAdapter() {
return new EclipseLinkJpaVendorAdapter();
}
//...
}
また、いくつかを定義する必要があります
これらは、 getVendorProperties()メソッドを介して追加できます。
@Override
protected Map<String, Object> getVendorProperties() {
HashMap<String, Object> map = new HashMap<>();
map.put(PersistenceUnitProperties.WEAVING, true);
map.put(PersistenceUnitProperties.DDL_GENERATION, "drop-and-create-tables");
return map;
}
クラスorg.eclipse.persistence.config.PersistenceUnitPropertiesには、EclipseLink。に対して定義できるプロパティが含まれています。
この例では、アプリケーションの実行時にウィービングを使用してデータベーススキーマを再作成することを指定しました。
以上です! これは、デフォルトのHibernateJPAプロバイダーからに変更するために必要な実装全体です。
SpringDataはJPAAPIを使用し、ベンダー固有のメソッドは使用しないことに注意してください。 したがって、理論的には、あるベンダーから別のベンダーに切り替えるときに問題はないはずです。
4. 結論
このクイックチュートリアルでは、SpringDataで使用されるデフォルトのJPA実装プロバイダーを変更する方法について説明しました。
デフォルトのHibernateからEclipseLink。に変更するのがいかに迅速で簡単かを見ました。
いつものように、例の完全な実装はGithubで利用できます。