در معماری لایه ای که معمولا لایه ای برای دسترسی به پایگاه داده وجود دارد (DAO یا data access layer) و در زمانی که در این لایه از JPA استفاده می شود، Spring Data JPA پیاده سازی این لایه را آسان تر می سازد و با در اختیار قرار دادن ابزار هایی پیاده سازی این لایه در پروژه های بر پایه فریم ورک Spring را ساده تر می سازد.
برای مثال در مثال زیر برای JAP Entity با نام Customer براحتی با استفاده از Spring Data JPA یک DAO تعریف شده است:
public interface CustomerRepository extends CrudRepository<Customer, Long> {
List<Customer> findByLastName(String lastName);
}
با استفاده از Spring Data JPA دیگر نیازی نیست که کلاسی بنویسید که رابط CustomerRepository را پیاده سازی کند و Spring Data JPA در زمان اجرا بصورت خودکار یک پیاده سازی برای رابط CustomerRepository خواهد ساخت:
ConfigurableApplicationContext context = SpringApplication.run(Application.class);
CustomerRepository repository = context.getBean(CustomerRepository.class);
// fetch all customers
Iterable<Customer> customers = repository.findAll();
// fetch an individual customer by ID
Customer customer = repository.findOne(1L);
// fetch customers by last name
List<Customer> bauers = repository.findByLastName("Bauer");