[Spring] Spring Data JPA

이병수·2024년 1월 23일
0

스프링 정리

목록 보기
13/24

Spring Data JPA란?

스프링 데이터 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의 SimpleJpaRepository

  • Spring Data JPA 에서는 JpaRepository 인터페이스를 구현하는 클래스를 자동으로 생성해준다.

    • Spring 서버가 뜰 때, JpaRepository 인터페이스를 상속 받은 인터페이스가 자동으로 스캔이 되면 해당 인터페이스의 정보를 토대로 자동으로 SimpleJpaRepository 클래스를 생성해주고 이 클래스를 Spring Bean으로 등록한다.

Spring Data JPA 사용 방법

import org.springframework.data.jpa.repository.JpaRepository;

public interface MemberRepository extends JpaRepository<Type, Id> {

}

JpaRepository를 제네릭을 이용하여 자료형과 Id를 선언해줘야한다.

JpaRepository<Type, Id>

  • Type : 사용할 Repository의 기준이 되는 Entity 이름을 기입

  • Id : 기입된 EntityPK 자료형을 기입

이렇게 작성을 하면 일반적으로 개발자가 생각할 수 있는 기본적인 CRUD 기능을 모두 사용할 수 있게 된다.

  • 이처럼 자동적으로 Entity 를 관리하는데 필요한 메서드를 Spring Data JPA에서 알아서 제공을 해준다.

  • 추가적으로 메서드가 필요하면 해당 인터페이스에 선언하여 사용하면 된다.

  • 이 때 메서드의 이름을 작명하는 규칙이 있기 때문에 메서드 이름을 기반으로 메서드의 구현체를 알아서 만들어준다.

참고할 만한 사이트 : https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html


주의점

그렇다고 Spring Data JPA가 마냥 좋은 것은 아니다.
분명히 한계점이 있을테고 문제점이 존재한다.
그에 대한 주의에 대해 천천히 알아보자.

profile
백엔드 개발자가 되고 싶어요

0개의 댓글