스프링 데이터 JPA는 스프링 데이터의 공통적인 기능에서 JPA의 유용한 기술이 추가된 기술이다.
즉, JPA를 쉽게 사용할 수 있게 만들어 놓은 하나의 모듈이다.
JPA에 대해 정리한 글이 있다.
JPA를 추상화시킨 Repository 인터페이스를 제공한다.
Repository 인터페이스는 Hibernate와 같은 JPA 구현체를 사용해서 구현한 클래스를 통해 사용이 된다.
일단 Spring Data JPA를 설치하기 위해서는 build.gradle 에 가서 한 코드를 작성해야한다.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
이미 JPA를 사용한다면 Spirng Data JPA 라이브러리가 설치되어 있을 것이다.
Spring Data JPA 에서는 JpaRepository 인터페이스를 구현하는 클래스를 자동으로 생성해준다.
Spring Bean
으로 등록한다.import org.springframework.data.jpa.repository.JpaRepository;
public interface MemberRepository extends JpaRepository<Type, Id> {
}
JpaRepository를 제네릭을 이용하여 자료형과 Id를 선언해줘야한다.
JpaRepository<Type, Id>
Type : 사용할 Repository의 기준이 되는 Entity
이름을 기입
Id : 기입된 Entity
의 PK
자료형을 기입
이렇게 작성을 하면 일반적으로 개발자가 생각할 수 있는 기본적인 CRUD 기능을 모두 사용할 수 있게 된다.
이처럼 자동적으로 Entity
를 관리하는데 필요한 메서드를 Spring Data JPA에서 알아서 제공을 해준다.
추가적으로 메서드가 필요하면 해당 인터페이스에 선언하여 사용하면 된다.
이 때 메서드의 이름을 작명하는 규칙이 있기 때문에 메서드 이름을 기반으로 메서드의 구현체를 알아서 만들어준다.
참고할 만한 사이트 : https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html
그렇다고 Spring Data JPA가 마냥 좋은 것은 아니다.
분명히 한계점이 있을테고 문제점이 존재한다.
그에 대한 주의에 대해 천천히 알아보자.