해결된 질문
작성
·
446
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
안녕하세요 spring 강의를 듣고 혼자 구글링을 통해 연습을하다가 다시 인강으로 돌아온 수강생입니다! 혼자 연습할 때 리포지토리를 작성할 경우 JpaRepository를 extends 하여 사용하였습니다. 이때 em의 역할까지 자동으로 해주는것같아 엔티티 메니저는 사용하지않았습니다. 구글링을 더 해보니 CrudRepository등도 존재하는 것을 알게 되었습니다.
여기서 질문은 보통 어느 방식을 선택하는지 궁금합니다. 상황에 맞는 방법이 있는 것인지 아니면 추세가 변하여 요즘은 어떤 것을 주로 쓴다는 흐름이 있는 것인지 궁금합니다!
답변 2
1
안녕하세요, taehee1129 님! 공식 서포터즈 codesweaver 입니다.
말씀하신 CrudRepository, JpaRepository는 위계관계를 갖습니다.
Repository 라는 인터페이스를 다음 순서로 구현하고 있습니다.
Repository
CrudRepository
PagingAndSortingRepository
JpaRepository
하위 인터페이스일수록 상위 인터페이스 + 고유 인터페이스를 제공합니다. 그러니 JpaRepository를 이용하면 상위 인터페이스의 모든 기능을 사용할 수 있습니다. JPA 를 이용하는 환경에서는 JpaRepository를 사용하시면 됩니다.
감사합니다.
안녕하세요 taehee1129님!
네 맞습니다.
Class 가 Interface를 상속하는 경우 상속이란 표현대신 '구현'(implements)이라 하고,
Interface가 interface를 상속하는 경우는 그대로 상속(extends)라 표현 합니다 :)
상속이든 구현이든 부모 클래스가 가진 기능 + 자식의 고유 기능을 추가(확장) 하는 것으로 이해하시면 됩니다.
0
******추가******
JpaRepository 소스들을 읽어보니 제공하는 메소드들에 em의 동작들을 작성되어있는 것을 확인하였습니다! 다른 질문들은 해결하지못했습니다
jparepository에 들어가본 것입니다. extends 부분이 말씀 해주신 상위 인터페이스라고 확인하면 될까요??