인프런 - 실전! 스프링 데이터 JPA
순수 JPA 기반 리포지토리 만들기
MemberjpaRepository.java
- delete 함수 추가
- findAll 함수 추가
- Optional find 함수 추가
- count 함수 추가
TeamRepository.java
- JPA의 자동 변경 감지기능으로 인해, update 함수가 필요 없음
- 테스트
반복적인 CRUD 의 발생
공통 인터페이스 설정
java config 설정
- 스프링 부트 사용 시, 생략 가능
- 만약 위치가 달리진다면 @EnableJpaRepositories 필요
Spring data jpa가 인터페이스를 보고 구현 클래스를 만들어서 Injection 받아 사용
- 실제 출력 시 : memberRepository.getClass() class com.sun.proxy.$ProxyXXX
- @Repository 애노테이션 생략 가능
공통 인터페이스 적용
public interface TeamRepository extends JpaRepository<ENTITY, PKTYPE> {
}
테스트
공통 인터페이스 분석
주요 메서드
- save(S) : 새로운 엔티티는 저장하고 이미 있는 엔티티는 병합한다.
- delete(T) : 엔티티 하나를 삭제한다. 내부에서 EntityManager.remove() 호출
- findById(ID) : 엔티티 하나를 조회한다. 내부에서 EntityManager.find() 호출
- getOne(ID) : 엔티티를 프록시로 조회한다. 내부에서 EntityManager.getReference() 호출
- findAll(…) : 모든 엔티티를 조회한다. 정렬( Sort )이나 페이징( Pageable ) 조건을 파라미터로 제공할 수 있다.
'Back-end > Spring Data Jpa' 카테고리의 다른 글
쿼리 메소드 기능 - @Query (0) | 2021.06.07 |
---|---|
쿼리 메소드 기능 - JPA NamedQuery (0) | 2021.06.07 |
쿼리 메소드 기능 - 메소드 이름으로 쿼리 생성 (0) | 2021.06.07 |
예제 도메인 모델 (0) | 2021.06.01 |
프로젝트 환경설정 (0) | 2021.06.01 |