Using JPA in SCA Spring Beans by Dusan Chromy
February 13, 2014 Leave a comment
When using Oracle SOA Suite 11g SCA Spring Bean components you will likely be facing a decision about how to interact with your database from within the Spring Beans. The answer will ultimately depend on your overall system architecture. For instance you may wire a Spring Bean directly to a DB adapter, or you can encapsulate the data access inside a web service or an EJB session bean. In my last project we have decided to access the data directly from the Spring Beans, taking advantage of the flexibility provided by Spring’s JDBC abstraction framework. In fact Spring makes JDBC access so simple that it is easy to miss other alternatives, one of them being especially noteworthy – the Java Persistence API.
Java Persistence API has greatly simplified the object-relational mapping in Java. Let’s have a look at how JPA can be incorporated into an SCA application.
We will create a simple service inspired by my other passion, motorcycles. The service will provide these operations:
- createBike – creates an entity for a motorcycle with the specified manufacturer and model name and returns the entity’s ID.
- getBikeDescription – retrieves the description of a motorcycle with the specified ID.
We start with an empty composite project and add a Spring Bean, following the code-first approach:
- Create a Java interface for our SCA service: MotoService.java
- Create a dummy implementation of the above interface MotoServiceImpl.java.
- Create a Spring Context which uses the classes created in the above steps.
- Wire the Spring Context to the Exposed Services lane – this step will generate MotoService.wsdl.
For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.