Spring Data JPA 는 Java Persistence API (JPA)와 Spring Framework를 기반으로 한 데이터 접근 계층을 간단하고 일관되게 구현할 수 있도록 지원하는 모듈이다.

기존에 Mybatis를 사용하는 것과 차이가 있다면 Mybatis는 Service 계층에서 Mapper로 요청을 보내 DB와 연동을 하지만 JPA는 Repository 로 요청을 보낸다.

<aside> 📌 Repository → 데이터베이스를 추상화한 인터페이스 Spring Data JPA는 여러 가지 기본적인 CRUD 작업을 제공하는 CrudRepository, JpaRepository 등 의 인터페이스를 제공

</aside>

Untitled

사용법 자체는 간단하게 인터페이스를 선언 후, JpaRepository를 상속 받으면 된다.

public interface CategoryRepository extends JpaRepository<Category, Integer> {
}

단, 사용할 때 JpaRepository<Entity 클래스, Pk 타입> 으로 상속하면 기본적인 CRUD 메소드가 자동으로 생성

인터페이스 설명
Repository 따로 기능은 없음
CrudRepository 주로 CRUD 기능을 제공
PagingAndSortingRepository 검색 및 검색 결과를 페이징 처리하고자 할 경우 사용한다
JpaRepository 지속성 컨텍스트 플러시 및 배치에서 레코드 삭제와 같은
일부 JPA 관련 추가 방법들을 제공한다.

Query Methods

쿼린 메소드란?

JPQL을 메소드로 대신 처리할 수 있도록 제공하는 기능

메소드의 이름으로 필요한 쿼리를 만들어주는 기능으로 find + 엔티티 이름 + BY+ 변수 이름 과 같이 네이밍 룰만 알면 사용 가능