티스토리 뷰
4. Repository
Repository
Spring Data 저장소 추상화의 중심 인터페이스,
관리할 도메인 클래스와 도메인 클래스의 ID 유형을 유형 인수로 사용
주로 작업할 유형을 캡처하고 이 인터페이스를 확장하는 인터페이스를 검색하는 데도움이 되는 마커 인터페이스 역할
CrudRepository : CRUD 기능 제공
PagingAndSortingRepository : 페이징 및 레코드 정렬을 수행하는 방법을 제공
JpaRepository : 지속성 컨텍스트 플러시 및 일괄 처리 레코드 삭제와 같은 JPA 관련 메소드 제공
※ 일반적으로 정렬 및 페이징이 필요한지 여부에 따라 CrudRepository 또는
PagingAndSortingRepository 를 사용하는 것이 가장 좋습니다 .
Repositories |
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#preface |
Interface Repository<T,ID> |
https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/Repository.html |
Interface CrudRepository<T,ID> |
https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/CrudRepository.html |
Interface PagingAndSortingRepository<T,ID> |
https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/PagingAndSortingRepository.html |
◆ CrudRepository인터페이스
public interface CrudRepository<T, ID> extends Repository<T, ID> { <S extends T> S save(S entity); Optional<T> findById(ID primaryKey); Iterable<T> findAll(); long count(); void delete(T entity); boolean existsById(ID primaryKey); // … more functionality omitted .} |
<S extends T> S save(S entity); | 주어진 엔티티를 저장 |
Optional<T> findById(ID primaryKey); | 지정된 ID로 식별되는 엔터티를 반환 |
Iterable<T> findAll(); | 모든 엔터티를 반환 |
long count(); | 엔터티 수를 반환 |
void delete(T entity); | 지정된 엔티티를 삭제 |
boolean existsById(ID primaryKey); | 주어진 ID를 가진 엔터티가 있는지 여부를 나타냄 |
◆ PagingAndSortingRepository 인터페이스
public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> { Iterable<T> findAll(Sort sort); Page<T> findAll(Pageable pageable); } |
◆ JpaRepository 인터페이스
JpaRepository는 CRUD처리를 위한 공통 인터페이스
JpaRepository를 extends하여 아래와 같이 인터페이스를 생성
public interface MemberRepository extends JpaRepository<Member, Long>{} |
Spring Data JPA에서 제공하는 JpaRepository 인터페이스를 상속하기만 해도 되며,인터페이스에 따로 @Repository등의 어노테이션을 추가할 필요가 없다.
JpaRepository를 상속받을 때는 사용될 Entity 클래스와 ID 값이 들어가게 된다.extends JpaRepository<엔티티 클래스이름 , ID 필드 타입>
JpaRepository를 단순하게 상속하는 것만으로 위의 인터페이스는 Entity 하나에 대해서 아래와 같은 기능을 제공
method | 기능 |
save() | 레코드 저장 (insert, update) |
findOne() | primary key로 레코드 한건 찾기 |
findAll() | 전체 레코드 불러오기. 정렬(sort), 페이징(pageable) 가능 |
count() | 레코드 갯수 |
delete() | 레코드 삭제 |
'WEB > 기타' 카테고리의 다른 글
[JPA] 6. JPA Auditing (0) | 2024.01.23 |
---|---|
[JPA] 5. Repository query keywords (0) | 2024.01.23 |
[JPA] 3. Entity - 연관관계 매핑 (0) | 2024.01.20 |
[JPA] 3. Entity - 설정, 속성 (0) | 2024.01.20 |
[JPA] 2. JPA 사용 설정 (0) | 2024.01.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 와이파이증폭기추천 #와이파이설치
- 자바스크립트break
- iptime와이파이증폭기 #와이파이증폭기설치
- 광주분식 #광주분식맛집 #상추튀김 #상추튀김맛집 #광주상추튀김
- 썬크림 #닥터지썬크림 #내돈내산 #내돈내산썬크림 #썬크림추천 #spf50썬크림 #닥터지메디유브이울트라선
- 자바스크립트countiue
- ajax
- 와이파이신호 #와이파이 #와이파이신호세게
- 자바스크립트 #javascript #math
- 와이파이약할때
- jQuery #jQuery이미지슬라이드 #이미지슬라이드
- SQL명령어 #SQL
- 자바스크립트정규표현식
- 바지락칼국수 #월곡동칼국수 #칼국수맛집
- 증폭기 #아이피타임증폭기
- lg그램pro #lg그램 #노트북 #노트북추천 #lg노트북
- 좋은책
- 좋은책 #밥프록터 #부의원리
- 정보처리기사 #정보처리기사요약 #정보처리기사요점정리
- 테스크탑무선랜카드 #무선랜카드 #아이피타이무선랜카드 #a3000mini #무선랜카드추천
- 파비콘사이즈
- jdk #jre
- 쇼팬하우어 #좋은책
- 연명의료결정제도 #사전연명의료의향서 #사전연명의료의향서등록기관 #광주사전연명의료의향서
- thymeleaf
- sw기술자평균임금 #2025년 sw기술자 평균임금
- echart
- css미디어쿼리 #미디어쿼리 #mediaquery
- 파비콘 #파비콘 사이트에 적용
- 무료폰트 #무료웹폰트 #한수원한돋움 #한수원한울림 #한울림체 #한돋움체
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함