개발강의정리/Spring

[스프링 데이터 JPA] 4-1. 스프링 데이터 JPA: JPA Repository

nineDeveloper 2019. 12. 14.
728x90

스프링 데이터 JPA

4. 스프링 데이터 JPA 활용

포스팅 참조 정보

GitHub

공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다

해당 포스팅에 대한 내용의 GitHub 주소

실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다

https://github.com/freespringlecture/spring-data-jpa-study/tree/chap04-01-jpa-jparepository

해당 포스팅 참고 인프런 강의

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-jpa/dashboard

실습 환경

  • Java Version: Java 11
  • SpringBoot Version: 2.1.2.RELEASE

1. 스프링 데이터 JPA: JPA Repository

@EnableJpaRepositories 애노테이션을 사용해야 JpaRepository 인터페이스를 상속받은 Repository 인터페이스 타입의 Proxy 빈들을 등록 해준다

@EnableJpaRepositories

  • 스프링 부트 사용할 때는 사용하지 않아도 자동 설정 됨
  • 스프링 부트 사용하지 않을 때는 @Configuration과 같이 사용

설정 옵션

  • EntityManager
  • transactionManager
  • basePackages: package scan을 시작할 base package
    기본적으로는 @EnableJpaRepositories 애노테이션을 사용한 위치부터 찾기 시작함
    best Practice는 항상 기본 Package에 위치

@Repository 애노테이션

안붙여도 된다 이미 붙어 있다 또 붙인다고 별일이 생기는건 아니지만 중복일 뿐

스프링 @Repository

  • SQLExcpetion 또는 JPA 관련 예외를 스프링의 DataAccessException 계층구조 하위클래스중 하나로 변환 해준다
  • 예외만 보더라도 어떤일이 발생했는지 이해하기 쉽도록 변환해줌
  • 기본적인 스프링 프레임워크의 기능

DataAccessException의 목적

SQLExcpetion이 모든 데이터 엑세스 관련된 에러사항을 SQLException 하나로 던져주고
CODE 값을 확인해서 무슨 에러인지 찾아봐야 되는 불편함이 있었음

그래서 DataAccessException 계층구조를 만들고 SQLExcpetion에 들어있는 CODE 값에 따라서
굉장히 구체적인 하위 클래스들 중하나로 Mapping을 해서 클래스 이름만 봐도 알 수 있음

Hibernate, JPA 같은 경우는 이미 충분히 예외가 잘 만들어져 있음

JpaSystemExceptionDataAccessException으로 변환 된것 임

728x90

댓글

💲 추천 글