Skip to content

Latest commit

 

History

History
19 lines (17 loc) · 1.51 KB

Spring Data JPA 간단 개념.md

File metadata and controls

19 lines (17 loc) · 1.51 KB

JPA를 편리하게 사용하도록 도와주는 도구, Spring에서 제공한다.

  • EntityManager를 직접 관리하지 않아도 됨
  • 스프링 예외 추상화를 지원
  • 공통 인터페이스 기능 지원
    • JpaRepository를 사용해서 기본적인 CRUD 기능 제공 상속 구조
    • 쿼리 메서드 기능 제공: 메서드 이름을 분석해서 자동으로 쿼리를 만들어줌
      • Embadded 타입도 쿼리로 사용하는 등, 여러 복잡한 쿼리도 가능(대신 이름이 길어진다.)
    • JPQL 작성: 메서드 위에 @Query를 사용하여 작성 가능
    • JPA의 네이티브 쿼리 기능 지원: SQL을 직접 작성할 수 있다.
  • 런타임 동작
    • JpaRepository를 구현하는 SimpleJpaRepository를 사용
    • (예시) 작성한 JpaRepository 를 상속하는 AbcRepository의 구현체인 AbcRepositoryProxy를 사용
    • AbcRepository를 사용하는 서비스 객체는 인터페이스를 의존하므로 이런 변경을 알 필요 없음
    • 예시
    • 참고로 SimpleJpaRepository@Repository@Transactional을 적용하고 있다.
      • 따라서 JpaRepository를 상속받는 인터페이스는 @Repository를 사용하지 않아도 되고,
      • 꼭 필요하지 않다면 @Transactional을 사용하지 않아도 된다.