Spring Data JPA là abstraction trên JPA — khai báo interface, Spring sinh implementation tự động.
java
public interface UserRepository extends JpaRepository<User, Long> {
// Sẵn có: save, findById, findAll, delete, count...
Optional<User> findByEmail(String email); // query method — derive từ tên
Page<User> findByActive(boolean active, Pageable page); // pagination/sorting
@Query("UPDATE User u SET u.active = false WHERE u.id = :id")
@Modifying int deactivate(@Param("id") Long id); // JPQL/native tuỳ biến
}@Repository: đánh dấu data-access component + tự dịch exception DB (SQLException) → Spring DataAccessException (unchecked, đồng nhất giữa các DB). JpaRepository đã có @Repository ngầm.
Lợi ích: ít code, query type-safe, transaction tự động qua @Transactional.