공통 인터페이스 기능
- Spring Data JPA는 JpaRepository를 상속받는 인터페이스가 있을 때 애플리케이션 실행 시점에 해당 인터페이스의 구현 클래스를 생성해준다.
- 개발자가 직접 인터페이스에 대한 구현 클래스를 만들지 않아도 된다.
- Spring Jpa가 프록시 객체를 JpaRepository를 상속받은 인터페이스에 주입한다.
- 메소드에 접근하는 시점에 실제 구현 클래스의 메소드를 호출하는 프록시 방식을 사용한다.
- JpaRepository를 상속받는 인터페이스에는 @Repository 어노테이션 생략 가능
public interface XxxReposity extends JpaRepository<Entity 타입, Entity PK 타입> {...}
- 스프링 데이터에 존재하는 Repository, CrudRepository, PagingAndSortingRepository는 DB와 상관없이 공통으로 사용할 수 있는 인터페이스이다.
- 스프링 데이터 JPA의 JpaRepository는 JPA에만 특화된 기능을 제공하는 인터페이스이다.
- 제네릭 타입
- T : 엔티티
- ID : 엔티티의 식별자 타입
- S : 엔티티와 그 자식 타입
- 주요 메소드
- save(S): 새로운 엔티티는 저장하고 이미 있는 엔티티는 병합한다.
- delete(T): 엔티티 하나를 삭제한다.
- findById(ID): 엔티티 하나를 조회한다.
- getOne(ID): 엔티티를 프록시로 조회한다.
- findAll(...): 모든 엔티티를 조회한다. 정렬이나 페이징 조건을 파라미터로 제공할 수 있다.
- JpaRepository는 대부분의 공통 메소드를 제공한다.
출처 : [인프런 김영한 실전 스프링 데이터 JPA]
실전! 스프링 데이터 JPA 강의 | 김영한 - 인프런
김영한 | 스프링 데이터 JPA는 기존의 한계를 넘어 마치 마법처럼 리포지토리에 구현 클래스 없이 인터페이스만으로 개발을 완료할 수 있습니다. 그리고 반복 개발해온 기본 CRUD 기능도 모두 제
www.inflearn.com
'Spring > [인프런 김영한 실전 스프링 데이터 JPA]' 카테고리의 다른 글
[인프런 김영한 실전 스프링 데이터 JPA] 나머지 기능들 (0) | 2024.09.12 |
---|---|
[인프런 김영한 실전 스프링 데이터 JPA] 스프링 데이터 JPA 분석 (0) | 2024.09.12 |
[인프런 김영한 실전 스프링 데이터 JPA] 확장 기능 (3) | 2024.09.11 |
[인프런 김영한 실전 스프링 데이터 JPA] 쿼리 메소드 기능 (1) | 2024.09.11 |