inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

JPA와 DB 설정, 동작확인

extends JpaRepository<> vs @Repository 질문

2318

차가운물

작성한 질문수 10

2

안녕하세요 기본편 강의 잘 들었습니다!

질문이 하나 있는데, DB에 접근하는 클래스를 만들 때 스프링 공식 사이트에서는 extends JpaRepository<>  있고 현재 강의에서는 @Repository로 접근을 하는데 둘의 차이가 있는 것 인가요? 

추상적인 질문이었다면 죄송합니다 ㅠㅠ

spring java JPA spring-boot 웹앱

답변 3

3

OMG

인텔리제이의 다음과 같은 다이어그램을 보는 기능을 사용하면 다음과 같이 상속 관계를 볼 수 있는데요.

JpaRepository 는 상위 인터페이스에 비해 당연히 많은 기능을 내포하고 있고, Spring Data Jpa를 사용한다면 사용하지 않을 이유는 없다고 생각합니다. 실제 인터페이스 코드를 보시면 이해하기 쉬우실 꺼에요.

,

CrudRepository를 상속한 MemberRepository와 CrudRepository 인터페이스 명세

,

다음과 같은 메서드가 추가 된 JpaRepository.class

,

deleteAll() 부터 saveAll()까지 11개의 메서드만 제공하는 CrudRepository.class

,

JpaRepository를 상속한 MemberRepository에서 사용 가능한 메서드 목록.

(flush(), findAll() 등 CrudRepository를 상속한 memberRepository보다 더 많은 기능이 포함 된 것을 확인 할 수 있습니다.

3

OMG

안녕하세요 ^^

궁금해 하시는 부분은 스프링 구현 코드를 직접 쫓아가서 찾다보면 이유를 알 수 있는데요,

우리가 만든 XXXRepository 인터페이스가 JpaRepository 인터페이스를 '상속'하면 해당 인터페이스의 구현체(Spring Data Jpa의 구현체 )인 SimpleJpaRepository에서 @Repository로 스프링 컨테이너가 관리하는 빈이 되기 때문에 우리가 만든 Repository에서 별도의 @Repository 어노테이션 없어도 스프링 빈이 되어 컴포넌트 스캔의 대상이 되어 사용할 수 있습니다.

0

김영한

OMG님 감사합니다^^

0

차가운물

감사합니다 

@OMG님 JpaRepository는 그냥 findAll, findOne 같은 매서드들이 구현체로 정의 되어 있는 것 인가요? 

그러면 실무에서는 어떤 것을 더 쓰나요?

현재 실전! 스프링 부트와 JPA 활용1 을 완강하고 실전2편을 들을 예정이라서 뒷 내용에 나올 것 같지만 궁금해서 댓글남겨요!

0

OMG

아래 답변 드렸습니다.
실무에서의 Spring Data Jpa 사용은 영한님의  실전! 스프링 데이터 JPA  에서 다루고 있으니 참고 부탁드립니다

0

차가운물

답변 감사합니다.

활용2 다음이 실전 스프링 데이터 JPA군요

갈 길이 머네요 ㅠㅠ 

0

OMG

열심히 하시다보면 금방 이실거에요~ㅎㅎ

지금처럼 학습하다 의문가지시고 탐구하시다보면 반드시 일취월장 하실거라 생각해요

화이팅!

0

김영한

안녕하세요. Jeongmin Lee님

extends JpaRepository는 스프링 데이터 JPA라는 기술을 사용했습니다.

이 기술은 JPA를 편리하게 사용할 수 있도록 도와주는 기술입니다.

(하지만 JPA 자체를 꼭 이해하고 사용해야 합니다.)

이후 로드맵을 따라가시면 실전! 스프링 데이터 JPA에서 자연스럽게 배우실 수 있습니다^^

감사합니다.

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

0

28

1

sdk 설정 오류

0

70

2

오탈자 - @Transactional

0

64

1

src/test/resources 테스트 경로 문제

0

64

1

상품 등록후 H2 db 출력 순서 바꿀 수 있나요?

0

70

1

MemberRepositoryTest 실행오류

0

91

1

boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)

1

197

2

강의 마지막 QueryDSL 사용 부분 질문있습니다

1

154

2

클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.

0

57

1

도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

0

82

1

기본 생성자

0

67

1

h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.

0

107

1

멤버서비스테스트 부분에서 막힙니다.

0

175

4

실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?

0

124

1

초반에 h2 다운로드 과정 꼭 필요한가요?

0

129

2

자신 필드에도 get으로 접근하는 이유가 있을까요?

0

122

1

24분 27초 연관관계 편의 메서드 위치

0

118

1

단건 주문만 가능하게 한건 의도한 부분이신가요?

0

114

2

빌드 툴, Gradle

0

65

1

h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다

0

82

2

Repository에서 EntityManager 주입 방식 차이

0

97

1

롬복과 사용자 정의 setter 메서드

0

78

1

주문 목록 조회 fetch join 질문드립니다

0

91

1

dirty checking 질문드립니다.

0

87

1