Chapter 4. JPA Repositories
The Java Persistence API (JPA) is the standard way of persisting Java objects into relational
databases. The JPA consists of two parts: a mapping subsystem to map classes
onto relational tables as well as an EntityManager API to access
the objects, define and execute queries, and more. JPA abstracts a variety
of implementations such as Hibernate, EclipseLink, OpenJpa, and others. The Spring
Framework has always offered sophisticated support for JPA to ease
repository implementations. The support consists of helper classes to
set up an EntityManagerFactory,
integrate with the Spring transaction abstraction, and translate
JPA-specific exceptions into Spring’s DataAccessException hierarchy.
The Spring Data JPA module implements the Spring Data Commons repository abstraction to ease the repository implementations even more, making a manual implementation of a repository obsolete in most cases. For a general introduction to the repository abstraction, see Chapter 2. This chapter will take you on a guided tour through the general setup and features of the module.
The Sample Project
Our sample project for this chapter consists of three packages: the com.oreilly.springdata.jpa base package plus a core and an order subpackage. The base package contains a Spring JavaConfig class to configure the Spring container using a plain Java class instead of XML. The two other packages contain our domain classes and repository interfaces. As the name suggests, the core package ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access