Repository 에 사용되는 extends들

DongGyun Cho·2023년 3월 27일

Java/Spring/Annotation

목록 보기
7/7

출처:
1. https://jaehoney.tistory.com/250
2. https://creampuffy.tistory.com/179

먼저 Spring Data JPA 란?

  • spring framework에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트

Spring에서 Data를 다루는 JPA를 쉽게 사용하게 해주기 위해 제공되는 몇가지 Interface들이 존재한다.

  1. JpaRepository
  2. CrudRepository
  3. Repository

아래의 그림은 Spring Data JPA 에서 제공하는 인터페이스 사이의 상속관계를 정리한 것이다.

그림에서 아래로 갈 수록 더 많은 기능이 구현된 모듈들이다.

public interface UserAccountRepository extends JpaRepository<UserAccount, Long> {
}

JpaRepository의 경우 메서드를 정의하지 않아도 아래와 같이 많은 기능들을 사용 할 수 있다.

하지만 만약 우리가 작성하는 프로그램에, 현재 비즈니스 로직에 delete 로직이 필요없음에도 JpaRepository나 CrudRepository를 사용해야 할까?

그렇지 않다.

주어진 인터페이스들은 우리들의 편의성을 위해 Spring에서 제공하는 인터페이스들이다.

만약 내가 정의한 내용들만 내 서비스 로직에서 사용하고 싶다면, 단순하게 Repository를 extends 해주면 된다. 그러곤 원하는 메소드만 정의 해주면 된다.

public interface UserAccountRepository extends Repository<UserAccount, Long> {
    List<UserAccount> findAll();
}


이 보다 더 자세하게 알고싶다면 출처에 내용을 확인해보면 될 것 같다.

해당 게시글은 사용 방법과 간략한 이유들만 정의하기로 한다.

profile
끈기를 가지고 해보자.

0개의 댓글