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.