JpaRepository method 정리
- 조건없이 해당 entity, 즉 테이블의 전체 값을 가져오는 메소드.
- 전체 read를 List로 받아서 Heap 메모리 영역에 저장한다고 하면 OutOfMemory가 되어서 일반적으로 성능 이슈 때문에 사용하진 않는다.
List <T> findAll();
- findAll()에 정렬값 추가
List <T> findAll (Sort sort);
- Id 값이 Iterable. 즉, List 타입으로 들어감.
List <T> findAllById(Iterable <ID> ids);
- entity를 Iterable List 형식으로 받아서 전부다 한꺼번에 DB에 반영하도록 저장하는 메소드.
<S extends T> List <S> saveAll(Iterable <S> entities);
- 현재 Jpa context에서 가지고 있는 DB값을 DB에 반영하도록 지시하는 메소드.
void flush();
- 저장한 데이터를 Jpa context에서 가지고 있지 말고 바로 DB에 반영해서 적용할 것을 지시하는 메소드.
<S extends T> S saveAndFlush(S entity);
- entity를 list 형식으로 받아서 한꺼번에 지우는 메소드.
void deleteInBatch(Iterable <T> entities);
- 조건 없이 해당 entity. 즉, table을 통째로 다 지우는 메소드. 실제 로직에서는 거의 사용하지 않음.
void deleteAllInBatch();
- id 값을 가지고 해당 entity 값을 조회하여 하나만 가져오는 메소드.
T getOne(ID id);
- example을 이용하여 findAll.
<S extends T> List <S> findAll(Example <S> example);
PagingAndSortingRepository
- Iterable <T> findAll(Sort sort);
- Pageable 파라미터를 받아서 한꺼번에 paging을 바로 쉽게 처리.
Page <T> findAll(Pageable pageable);
CrudRepository
우리가 사용하는 대부분의 기본적인 메소드들이 정의되어 있음.
- entity에 대한 저장 제공.
<S extends T> S save(S entity);
- List 타입의 entity 묶음들을 가지고 한꺼번에 저장하는 메소드.
<S extends T> Iterable <S> saveAll(Iterable <S> entities);
- Optional 객체로 매핑을 해서 리턴해주는 메소드.
- getOne과 비슷하나 동작이 조금은 다름.
Optional <T> findById(ID id);
- 해당 객체가 존재하는 여부 확인 메소드.
Boolean existById(ID id);
- 전체 entity 갯수 가져오는 메소드.
- Paging 처리 시에 count() 필요.
long count();
- void deleteById(ID id);
- Id에 해당하는 데이터 삭제 메소드.
void delete(T entity);
QueryByExampleExecutor
- Example class를 활용한 조회가 좀 더 다양하게 정의
Repository
최상위 레퍼지토리
- 아무것도 없다.
- Jpa에서 사용하는 도메인 레퍼지토리 타입이라는 것을 알려주기 위한 인터페이스.
- 실제로 메서드에 대한 정의는 존재하지 않는다.
'Spring' 카테고리의 다른 글
BackEnd 정리 (0) | 2021.10.18 |
---|---|
@annotation 정리 (0) | 2021.04.29 |
Annotation 정리 (0) | 2021.04.25 |
04. Spring Boot (0) | 2021.04.23 |
03. 웹 개발 개론 (0) | 2021.04.22 |