Spring Data - JPA is part of the Spring Data umbrella project which makes it easy to implement JPA based repositories
Spring Data JPA, part of the larger spring-data family, makes it easy to easily implement jpa based repositories. This module deals with enhanced support for jpa based data access layers. It makes it easier to build Spring-powered applications that use data access technologies.
spring-data is based on the concepts of Aggregates, Aggregate Roots and Repositories. It works best if these concepts are considered when you design your domain model. You might want to look into "Advancing Enterprise DDD" to learn what that actually means.
Please note that Spring Data doesn't try to abstract over the underlying technology. This means as a user you still have to understand it. In the case of Spring Data JPA this means you need to understand JPA in order to properly work with Spring Data JPA. This applies especially to the workings of the 1st level cache.
Useful links
Blog article describing how to use
Specification
s to construct reusable where conditions.Blog article describing how to use Spring Expression Language (SpEL) in annotated queries
Popular Questions
What is Spring Data JPA (good for)
How does Spring Data JPA differ from Hibernate for large projects?
What is the difference between Hibernate and Spring Data JPA
Common questions
JPA Query to handle NULL parameter value and similarly How to query a column which value is null in JPA?
Controlling eager/lazy loading for queries: Hibernate Spring JPA load only specific lazy relationship
How to create a dynamic where clause as one needs for search dialogs for example: Dynamic spring data jpa repository query with arbitrary AND clauses.
Spring data jpa - How to combine multiple And and Or through method name