Implementing a data access layer of an application has been cumbersome for quite a while. Too much boilerplate code has to be written to execute simple queries as well as perform pagination, and auditing. Spring JPA aims to significantly improve the implementation of data access layers by reducing the effort to the amount that’s actually needed. As a developer you write your repository interfaces, including custom finder methods, and Spring will provide the implementation automatically. Note, this approach is not limited to JPA and has been applied to other persistence stores such as MongoDB, Gemfire Neo4j as part of the Spring MongoDB, Gemfire, and Neo4j projects. Spring JPA also takes the concept of a specification from Eric Evans’ book Domain Driven Design, that carries the same semantics and provides an API to define such Specifications using the JPA criteria API.For more information on the free chapter and the eBook giveaway, click here.