Een gids voor EclipseLink met lente

1. Overzicht

Spring Data gebruikt standaard Hibernate als de standaard JPA-implementatieprovider.

Hibernate is echter zeker niet de enige JPA-implementatie die voor ons beschikbaar is.

In dit artikel gaan we door de stappen die nodig zijn om te installeren EclipseLink als de implementatieprovider voor Spring Data JPA.

2. Maven Afhankelijkheid

Om het in onze Spring-applicatie te gebruiken, hoeven we alleen de org.eclipse.persistence.jpa afhankelijkheid in de pom.xml van ons project:

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

Spring Data wordt standaard geleverd met de Hibernate-implementatie.

Omdat we willen gebruiken EclipseLink in plaats daarvan hebben we het als de PPV-provider niet meer nodig.

Daarom kunnen we het uit ons project verwijderen door de afhankelijkheden ervan uit te sluiten:

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

De volgende stap is om het Spring Framework te vertellen dat we willen gebruiken EclipseLink als de PPV-implementatie.

3. Veerconfiguratie

JpaBaseConfiguration is een abstracte klasse die bonen voor JPA definieert in Spring Boot. Om het aan te passen, moeten we enkele methoden implementeren, zoals createJpaVendorAdapter () of getVendorProperties ().

Spring biedt een configuratie-implementatie voor Hibernate uit de doos genaamd SlaapstandJpaAutoConfiguration. Echter, voor EclipseLink, we moeten een aangepaste configuratie maken.

Ten eerste moeten we het createJpaVendorAdapter () methode die de te gebruiken JPA-implementatie specificeert.

De lente biedt een implementatie van de SamenvattingJpaVendorAdapter voor EclipseLink gebeld EclipseLinkJpaVendorAdapter die we gaan gebruiken in onze methode:

@Configuration openbare klasse EclipseLinkJpaConfiguration breidt JpaBaseConfiguration uit {@Override beschermde AbstractJpaVendorAdapter createJpaVendorAdapter () {retourneer nieuwe EclipseLinkJpaVendorAdapter (); } // ...}

We moeten er ook enkele definiëren leverancierspecifieke eigenschappen die door EclipseLink zullen worden gebruikt.

We kunnen deze toevoegen via de getVendorProperties () methode:

@Override beschermde kaart getVendorProperties () {HashMap map = nieuwe HashMap (); map.put (PersistenceUnitProperties.WEAVING, true); map.put (PersistenceUnitProperties.DDL_GENERATION, "drop-and-create-tables"); kaart teruggeven; }

De klas org.eclipse.persistence.config.PersistenceUnitProperties bevat eigenschappen waarvoor we kunnen definiëren EclipseLink.

In dit voorbeeld hebben we aangegeven dat we weaving willen gebruiken en het databaseschema opnieuw willen maken wanneer de applicatie wordt uitgevoerd.

En dat is het! Dit is de hele implementatie die nodig is om over te schakelen van de standaard Hibernate JPA-provider naar EclipseLink.

Merk op dat Spring Data de JPA API gebruikt en geen leverancierspecifieke methoden. In theorie zou er dus geen probleem moeten zijn bij het overschakelen van de ene leverancier naar de andere.

4. Conclusie

In deze korte zelfstudie hebben we besproken hoe u de standaard JPA-implementatieprovider kunt wijzigen die door Spring Data wordt gebruikt.

We hebben gezien hoe snel en eenvoudig het is om over te schakelen van Hibernate, wat de standaard is naar EclipseLink.

Zoals altijd is de volledige implementatie van de voorbeelden beschikbaar op Github.