This example describes how EclipseLink can be used within a Spring Framework enabled application as the JPA provider. With EclipseLink developers have access to a fully compliant JPA implementation with extensions enabling simplified access to EclipseLink's advanced Object-Relational functionality. This how-to is intended for developers with some experience using JPA within Spring. The steps provided can be easily used with Spring's Pet Clinic sample.
Step 1: Extending Spring for EclipseLink JPA
The Spring Framework provides support for plugging in any JPA provider. Through this standard mechanism you can specify the usage of EclipseLink with all of its JPA extensions for use within your Spring enabled application. This is accomplished through the use of a JPA Vendor and a JPA Dialect. Within Spring 2.0 and higher you will find implementations of these for use with TopLink Essentials.
EclipseLinkJpaDialect is derived from the TopLinkJpaDialect shipped in the Spring Framework 2.0.4. Customized for EclipseLink package names.
EclipseLinkJpaVendorAdapter is derived from TopLinkJpaVendorAdapter
The spring.jar must be configured on your classpath along with the necessary Spring libraries (including the ASM jar).
If you already have a Spring application using TopLink Essentials (or Oracle TopLink) as the JPA provider and are using only the JPA annotations, XML, and TopLink Essentials' JPA Extensions you can switch to EclipseLink simply by including these additional classes and making the necessary changes to your application context XML.
Step 2: Modify your Spring Application Context XML
The Spring application context XML used by the application must be slightly modified to make use of the new JPA vendor adapter provided.
<bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter"> <property name="databasePlatform" value="org.eclipse.persistence.platform.database.oracle.OraclePlatform" /> <property name="showSql" value="true" /> </bean>
As you can see the only changes required are to specify the new JPA adapter class and to use the EclipseLink package names for the database platform configuration.
As shown in this example it is quite simple to use EclipseLink as your JPA provider within Spring. The Eclipselink adapter and dialect classes will be contributed back into the Spring Framework project and will hopefully be available in an upcoming release.