Spring 18. Spring Data JPA

김창민·2024년 8월 16일

BE

목록 보기
39/50

Spring Data JPA

  • JPA를 쉽게 사용할 수 있도록 만든 모듈
  • JPA를 추상화한 Repository 인터페이스를 제공한다.
    • Repository 인터페이스는 Hibernate와 같은 JPA 구현체를 사용해서 구현한 클래스를 통해 사용된다.

Spring Data JPA 의 SimpleRepository

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

사용 방법

  • Repository가 JpaRepository를 상속받으면 된다. public interface MemoRepository extends JpaRepository<Memo, Long> 여기서 <엔티티 클래스 , ID 타입>을 넣으면 된다.
  • 이러면 JpaRepository 에 구현된 메소드를 그냥 사용하면 되기 때문에 특별하게 sql문을 작성하지 않아도 된다.
    public MemoResponseDto createMemo(MemoRequestDto requestDto) {
            // RequestDto -> Entity
            Memo memo = new Memo(requestDto);
    
            // DB 저장
            Memo saveMemo = memoRepository.save(memo);
    
            // Entity -> ResponseDto
            MemoResponseDto memoResponseDto = new MemoResponseDto(saveMemo);
    
            return memoResponseDto;
        }
       
    • 이런식으로 하면 바로바로 된다.
      private Memo findMemo(Long id) {
              return memoRepository.findById(id).orElseThrow(() ->
                      new IllegalArgumentException("선택한 메모는 존재하지 않습니다.")
              );
          }
      • 이렇게 findBy~ 도 자동으로 구현되어있다.
profile
일일 회고 : https://rlackdals981010.github.io/

0개의 댓글