Spring Data JPA eliminuje boilerplate pisania klas DAO. Deklarujesz interfejs repozytorium; przy starcie Spring generuje implementację proxy opartą o JPA/Hibernate. Nigdy nie piszesz entityManager.persist(...) dla podstawowego CRUD.
Encja + repozytorium
{
Long id;
String email;
active;
}
<User, Long> {
Optional<User> ;
List<User> ;
}
