jpa repository.save 메서드 구현 코드를 보고 싶습니다
859
작성한 질문수 33
강사님 안녕하세요~
회사에서
jpa 사용하면서 깊이 생각 안하고 사용하다가
궁금한점이 생겼습니다
특정 리포지토리가 있다고 가정하겠습니다
@Repository
public interface 리포지토리 extends JpaRepository<도메인, Long>, JpaSpecificationExecutor<도메인> {
리포지토리.save();
하면 스프링프레임웍 하이버네이트 구현체가 실행해준다고 하는데
저는 실제 프레임웍 구현체 소스 코드를 보고 싶습니다
제가 IDE 이클립스를 사용중인데 어디라이브러리나
소스 코드를 보면 될까요
리포지토리.save() -> █이메서드를 클릭하면
org.springframework.data.repository.CrudRepository 다시 인터페이스이고
@NoRepositoryBean
public interface CrudRepository<T, ID> extends Repository<T, ID> {
<S extends T> S save(S entity);
=> █ CrudRepository 인터페이스의 save 메서드를 구현코드는
또 어느라이브러리에 어떤 메서드를 확인하면 될까요?
*.스프링, 스프링부트 강의 수강하며 계속 반복되는 얘기가
유연하게 적용하기위해 많은 인터페이스를 사용하고
구현체가 있다고 계속 얘기되는데
그럼 그런 구현체를 최 하위의 클래스 메서드를 보는 방법이 어떻게 되는지 궁금하네요..
*.추가적으로 소스코드에는
리포지토리.save(); =>인터페이스.save();
인터페이스.메서드 를 호출했는데
스프링 프레임웍에서 어떤 원리로
인터페이스.메서드 => 구현체클래스.메서드가 호출되는지
이해가 가지 않습니다
바쁘시겠지만 시간 나실때 답변 주시면 감사하겠습니다
수고하세요..
#JPA
#구현체
#하이버네이트
#hibernate
답변 1
0
안녕하세요, 김동희 님. 공식 서포터즈 y2gcoder 입니다.
org.springframework.data.jpa.repository.support.SimpleJpaRepository의 save() 메서드를 보시겠습니까?

내부에서는 저희가 본 강의에서 배우는 EntityManager를 이용하고 있는 모습을 보실 수 있습니다.
감사합니다.
0
y2coder 님 감사합니다~
혹시
*.추가적으로 소스코드에는
리포지토리.save(); =>인터페이스.save();
인터페이스.메서드 를 호출했는데
스프링 프레임웍에서 어떤 원리로
인터페이스.메서드 => 구현체클래스.메서드가 호출되는지
이해가 가지 않습니다
====> 이 부분에 대해서도 여쭤봐도 될까요?
2
해당 부분은 스프링에서 컨테이너를 올려 빈을 등록할 때,
저희가 만든 JpaRepository를 상속한 Repository 인터페이스를 찾은 뒤 해당 인터페이스를 기반으로 SimpleJpaRepository 같은 실제 구현체를 동적으로 만들어 작동합니다.
벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?
0
28
2
inheritance startegy 선택시 고려사항
0
22
1
Entity 동등성 비교
0
21
1
실무 조언 관련 질문입니다.
0
47
1
H2데이터베이스 파일 생성
0
56
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
53
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
52
1
JPQL 메소드와 락
0
55
1
Delivery @OneToOne
0
60
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
94
2
UnsupportedOperationException 발생
0
86
3
H2 Database 연결이 안됩니다.
0
95
2
연관관계 매핑 질문드립니다.
0
85
2
h2데이터베이스 실행오류
0
108
2
persistence.xml
0
108
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
80
1
영속성 컨텍스트
0
66
1
JPA 프록시
0
96
1
Native Query와 MyBatis
0
70
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
87
1
임베디드 타입 예시 코드 관련 질문
0
115
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
95
3
인텔리제이 패키지 커서 단축키 질문
0
108
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
145
1






