Springを使用したEclipseLinkのガイド
1. 概要
デフォルトでは、Spring DataはデフォルトのJPA実装プロバイダーとしてHibernateを使用します。
ただし、使用可能なJPA実装はHibernateだけではありません。
この記事では、Spring Data JPAの実装プロバイダーとしてEclipseLinkを設定するために必要な手順を説明します。
2. メーベン依存
Springアプリケーションで使用するには、プロジェクトのpom.xmlにorg.eclipse.persistence.jpa依存関係を追加する必要があります。
org.eclipse.persistence
org.eclipse.persistence.jpa
2.7.0
デフォルトでは、SpringDataにはHibernateの実装が付属しています。
代わりにEclipseLinkをJPAプロバイダーとして使用したいので、もう必要ありません。
したがって、依存関係を除外することでプロジェクトから削除できます。
org.springframework.boot
spring-boot-starter-data-jpa
org.hibernate
hibernate-entitymanager
org.hibernate
hibernate-core
次のステップは、JPA実装としてEclipseLinkを使用することをSpringFrameworkに通知することです。
3. スプリング構成
Spring BootのJpaBaseConfiguration is an abstract class which defines beans for JPA。 カスタマイズするには、createJpaVendorAdapter()やgetVendorProperties()などのメソッドを実装する必要があります。
Springは、HibernateJpaAutoConfigurationと呼ばれるHibernateの構成実装をすぐに提供します。 ただし、EclipseLink,の場合は、カスタム構成を作成する必要があります。
まず、使用するJPA実装を指定するcreateJpaVendorAdapter()メソッドを実装する必要があります。
Springは、メソッドで使用するimplementation of the AbstractJpaVendorAdapter for EclipseLink called EclipseLinkJpaVendorAdapterを提供します。
@Configuration
public class EclipseLinkJpaConfiguration extends JpaBaseConfiguration {
@Override
protected AbstractJpaVendorAdapter createJpaVendorAdapter() {
return new EclipseLinkJpaVendorAdapter();
}
//...
}
また、いくつかのvendor-specific properties which will be used by EclipseLink.を定義する必要があります
これらはgetVendorProperties()メソッドを介して追加できます。
@Override
protected Map getVendorProperties() {
HashMap 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.に対して定義できるプロパティが含まれています
この例では、アプリケーションの実行時にウィービングを使用してデータベーススキーマを再作成することを指定しました。
And that’s it!これは、デフォルトのHibernate JPAプロバイダーからEclipseLink.に変更するために必要な実装全体です。
Spring Dataはベンダー固有のメソッドではなくJPA APIを使用することに注意してください。 そのため、理論的には、あるベンダーから別のベンダーに切り替えても問題はないはずです。
4. 結論
このクイックチュートリアルでは、Spring Dataで使用されるデフォルトのJPA実装プロバイダーを変更する方法について説明しました。
デフォルトのHibernateからEclipseLink.に変更するのがいかに迅速で簡単かを見ました
いつものように、例の完全な実装はover on Githubで利用できます。