티스토리 뷰

dev/spring data JPA

JpaRepository의 정체

dev_0hoon 2024. 3. 5. 15:42
        System.out.println("memberRepository = " + memberRepository.getClass());

 

log

memberRepository = class jdk.proxy2.$Proxy123

 

jpaRepository를 extends한 repository를 로그에 찍어봤다. 정체는 프록시였는데,

스프링jpa가 인터페이스를 보고 구현체를 꼿아버린거다. 구현체를 스프링 JPA가 만들어주기 때문에 인터페이스 만으로 메소드를 다 사용이 가능한 것이다.

 

 

 

제네릭 타입

- T : 엔티티

- ID : 엔티티의 식별자 타입

- S : 엔티티와 그 자식 타입

 

주요 메서드

- save(S) : 새로운 엔티티는 저장하고 이미 있는 엔티티는 병합한다.

- delete(T) : 엔티티 하나를 삭제한다. 내부에서 'EntityMananger. remove()' 호출

- findById(ID) : 엔티티 하나를 조회한다. 내부에서 'EntityManager.find()' 호출

- getOne(ID) : 엔티티를 프록시로 조회한다. 내부에서 'EntityManager.getReference()' 호출

- FindAll(...) : 모든 엔티티를 조회한다 . 정렬('sort')이나 페이징('Pageable') 조건을 파라미터로 제공할 수 있다.

 

'dev > spring data JPA' 카테고리의 다른 글

@Query 값 DTO 조회하기 , 파라미터 바인딩  (0) 2024.03.05
JPA NamedQuery  (0) 2024.03.05
메소드 이름으로 쿼리 생성  (0) 2024.03.05
기본 및 설정  (0) 2024.03.04
Spring Data JPA 소개  (2) 2024.03.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함