Eine Anleitung zu EclipseLink mit Spring

1. Überblick

Standardmäßig verwendet Spring Data Hibernate als Standard-JPA-Implementierungsanbieter.

Hibernate ist jedoch sicherlich nicht die einzige JPA-Implementierung, die uns zur Verfügung steht.

In diesem Artikel werden die Schritte beschrieben, die erforderlich sind, umEclipseLink als Implementierungsanbieter für Spring Data JPA einzurichten.

2. Maven-Abhängigkeit

Um es in unserer Spring-Anwendung zu verwenden, müssen wir nur dieorg.eclipse.persistence.jpa-Abhängigkeit in diepom.xml unseres Projekts einfügen:


    org.eclipse.persistence
    org.eclipse.persistence.jpa
    2.7.0

Standardmäßig wird Spring Data mit der Hibernate-Implementierung geliefert.

Da wir stattdessenEclipseLink als JPA-Anbieter verwenden möchten, benötigen wir es nicht mehr.

Daher können wir es aus unserem Projekt entfernen, indem wir seine Abhängigkeiten ausschließen:


    org.springframework.boot
    spring-boot-starter-data-jpa
    
        
            org.hibernate
            hibernate-entitymanager
        
        
            org.hibernate
            hibernate-core
        
    

Der nächste Schritt besteht darin, dem Spring Framework mitzuteilen, dass wirEclipseLink als JPA-Implementierung verwenden möchten.

3. Federkonfiguration

JpaBaseConfiguration is an abstract class which defines beans for JPA im Spring Boot. Um es anzupassen, müssen wir einige Methoden wiecreateJpaVendorAdapter() odergetVendorProperties() implementieren.

Spring bietet eine sofort einsatzbereite Konfigurationsimplementierung für den Ruhezustand mit dem NamenHibernateJpaAutoConfiguration. FürEclipseLink, müssen wir jedoch eine benutzerdefinierte Konfiguration erstellen.

Zuerst müssen wir diecreateJpaVendorAdapter()-Methode implementieren, die die zu verwendende JPA-Implementierung angibt.

Spring liefert einimplementation of the AbstractJpaVendorAdapter for EclipseLink called EclipseLinkJpaVendorAdapter, das wir in unserer Methode verwenden werden:

@Configuration
public class EclipseLinkJpaConfiguration extends JpaBaseConfiguration {

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

    //...
}

Außerdem müssen wir einigevendor-specific properties which will be used by EclipseLink. definieren

Wir können diese über diegetVendorProperties()-Methode hinzufügen:

@Override
protected Map getVendorProperties() {
    HashMap map = new HashMap<>();
    map.put(PersistenceUnitProperties.WEAVING, true);
    map.put(PersistenceUnitProperties.DDL_GENERATION, "drop-and-create-tables");
    return map;
}

Die Klasseorg.eclipse.persistence.config.PersistenceUnitProperties enthält Eigenschaften, die wir fürEclipseLink. definieren können

In diesem Beispiel haben wir angegeben, dass wir das Weben verwenden und das Datenbankschema neu erstellen möchten, wenn die Anwendung ausgeführt wird.

And that’s it! Dies ist die gesamte Implementierung, die erforderlich ist, um vom Standard-JPA-Anbieter für den Ruhezustand zuEclipseLink. zu wechseln

Beachten Sie, dass Spring Data die JPA-API und keine herstellerspezifischen Methoden verwendet. Theoretisch sollte es also kein Problem geben, von einem Anbieter zu einem anderen zu wechseln.

4. Fazit

In diesem kurzen Lernprogramm wurde erläutert, wie der von Spring Data verwendete Standard-JPA-Implementierungsanbieter geändert wird.

Wir haben gesehen, wie schnell und einfach es ist, von Hibernate (Standardeinstellung) aufEclipseLink. zu wechseln

Wie immer ist die vollständige Implementierung der Beispieleover on Github verfügbar.