- 자바의 표준 데이터베이스 액세스 API
- ORM(Object-Relational Mapping, 객체-관계 매핑)을 이용한 데이터베이스 액세스 API
- JPA의 대표적인 구현체 : Hibernate(하이버네이트) 프레임워크
❔ 참고) mybatis
- SQL 매퍼 프레임워크
- SQL-객체 매핑을 이용한 데이터베이스 액세스를 지원하는 구현체
- 데이터베이스 액세스에 대한 추상화를 지원하는 프로젝트
- 데이터베이스와 관련된 다양한 하위 프로젝트를 가지고 있다.
interface Repository<T, ID>
interface CrudRepository<T, ID> extends Repository<T, ID>
<S extends T> S save(S entity)
Optional<T> findById(ID id)
boolean existsById(ID id)
Iterable<T> findAll()
long count()
void deleteById(ID id)
void delete(T entity)
void deleteAll()
interface PagingAndSortingRepository<T, ID>
Iterable<T> findAll(Sort sort)
Page<T> findAll(Pageable pageable)
- Spring Data의 하위 프로젝트
- Spring Data에서 Repository 인터페이스로 추상화한 데이터베이스 액세스를 JPA의 구현체인 Hibernate를 이용해서 구현했다.
개발자는 자바 애플리케이션 구현 시,
JPA의 API를 직접 사용하는 대신 Spring Data와 Spring Data JPA에서 추상화해둔 API를 이용해서 데이터베이스 액세스를 수행한다.
JPA를 직접적으로 사용하지 않고, Spring Data JPA를 통해 간접적으로 사용
결과적으로, JPA를 이용한 데이터베이스 액세스 작업을 보다 편리하게 사용할 수 있도록 지원한다.