1. 공통 인터페이스 설정
JavaConfig 설정- 스프링 부트 사용시 생략 가능
@Configuration
@EnableJpaRepositories(basePackages = "jpabook.jpashop.repository")
public class AppConfig {}
스프링 데이터 JPA가 구현 클래스 대신 생성
public interface MemberRepository extends JpaRepository<Member, Long> {
}
JpaRepository 인터페이스: 공통 CRUD 제공
제네릭은 <엔티티 타입, 식별자 타입> 설정
주의
T findOne(ID) Optional<T> findById(ID) 변경
제네릭 타입
T : 엔티티ID : 엔티티의 식별자 타입
S : 엔티티와 그 자식 타입
주요 메서드
save(S) : 새로운 엔티티는 저장하고 이미 있는 엔티티는 병합한다.
delete(T) : 엔티티 하나를 삭제한다. 내부에서 EntityManager.remove() 호출
findById(ID) : 엔티티 하나를 조회한다. 내부에서 EntityManager.find() 호출
getOne(ID) : 엔티티를 프록시로 조회한다. 내부에서 EntityManager.getReference() 호출
findAll(…) : 모든 엔티티를 조회한다. 정렬( Sort )이나 페이징( Pageable ) 조건을 파라미터로 제공할 수 있다.
참고: JpaRepository 는 대부분의 공통 메서드를 제공한다.
출처 : 김영한 JPA 스프링 데이터 강의
'JPA > JPA-Spring Data' 카테고리의 다른 글
@Query, 리포지토리 메소드에 쿼리 정의하기 (0) | 2022.07.20 |
---|---|
JPA NamedQuery (0) | 2022.07.19 |
메소드 이름으로 쿼리 생성 (0) | 2022.07.19 |
순수 JPA 기반 리포지토리 만들기 (0) | 2022.07.19 |
예제 도메인 모델 (0) | 2022.07.19 |