Um guia para EclipseLink com Spring
1. Visão geral
Por padrão, o Spring Data usa o Hibernate como o provedor de implementação JPA padrão.
No entanto, o Hibernate certamente não é a única implementação JPA disponível para nós.
Neste artigo, passaremos pelas etapas necessárias para configurarEclipseLink como o provedor de implementação do Spring Data JPA.
2. Dependência do Maven
Para usá-lo em nosso aplicativo Spring, precisamos apenas adicionar a dependênciaorg.eclipse.persistence.jpa empom.xml do nosso projeto:
org.eclipse.persistence
org.eclipse.persistence.jpa
2.7.0
Por padrão, Spring Data vem com a implementação do Hibernate.
Como queremos usarEclipseLink como o provedor JPA, não precisamos mais dele.
Portanto, podemos removê-lo de nosso projeto excluindo suas dependências:
org.springframework.boot
spring-boot-starter-data-jpa
org.hibernate
hibernate-entitymanager
org.hibernate
hibernate-core
A próxima etapa é informar ao Spring Framework que queremos usarEclipseLink como a implementação JPA.
3. Configuração da mola
JpaBaseConfiguration is an abstract class which defines beans for JPA no Spring Boot. Para personalizá-lo, temos que implementar alguns métodos comocreateJpaVendorAdapter() ougetVendorProperties().
O Spring fornece uma implementação de configuração para o Hibernate pronta para uso, chamadaHibernateJpaAutoConfiguration. No entanto, paraEclipseLink,, temos que criar uma configuração personalizada.
Primeiro, precisamos implementar o métodocreateJpaVendorAdapter(), que especifica a implementação JPA a ser usada.
Spring fornece umimplementation of the AbstractJpaVendorAdapter for EclipseLink called EclipseLinkJpaVendorAdapter que usaremos em nosso método:
@Configuration
public class EclipseLinkJpaConfiguration extends JpaBaseConfiguration {
@Override
protected AbstractJpaVendorAdapter createJpaVendorAdapter() {
return new EclipseLinkJpaVendorAdapter();
}
//...
}
Além disso, temos que definir algunsvendor-specific properties which will be used by EclipseLink.
Podemos adicioná-los por meio do métodogetVendorProperties():
@Override
protected Map getVendorProperties() {
HashMap map = new HashMap<>();
map.put(PersistenceUnitProperties.WEAVING, true);
map.put(PersistenceUnitProperties.DDL_GENERATION, "drop-and-create-tables");
return map;
}
A classeorg.eclipse.persistence.config.PersistenceUnitProperties contém propriedades que podemos definir paraEclipseLink.
Neste exemplo, especificamos que queremos usar a combinação e recriar o esquema do banco de dados quando o aplicativo é executado.
And that’s it! Esta é toda a implementação necessária para mudar do provedor Hibernate JPA padrão paraEclipseLink.
Observe que o Spring Data usa a API JPA e não nenhum método específico do fornecedor. Portanto, em teoria, não deve haver problema ao alternar de um fornecedor para outro.
4. Conclusão
Neste tutorial rápido, abordamos como alterar o provedor de implementação JPA padrão usado pelo Spring Data.
Vimos como é rápido e simples mudar do Hibernate, que é o padrão paraEclipseLink.
Como sempre, a implementação completa dos exemplos está disponívelover on Github.