Spring Data JPA 에 대해서 알아보자
JPA 처리를 담당하는 Repository는 기본적으로 4가지가 있다.
Repository <T,ID>
CrudRepository <T,ID>
PagingAndSotringRepository <T,ID>
JpaRepository <T,ID>
T는 Entity의 타입클래스이고 ID는 P.K 값의 Type이다.
CrudRepository는 관리되는 엔티티 클래스에 대해 정교한 CRUD 기능을 제공한다.
CrudRepository
public interface CrudRepository<T, ID extends Serializable>
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.
}
PagingAndSortingRepository
public interface PagingAndSortingRepository<T, ID extends Serializable>
extends CrudRepository<T, ID> {
Iterable<T> findAll(Sort sort);
Page<T> findAll(Pageable pageable);
}
// page size 20으로 된 전체 목록에서 두번째 페이지를 아래아 같이 쉽게 가져올 수 있다.
PagingAndSortingRepository<User, Long> repository = // … get access to a bean
Page<User> users = repository.findAll(new PageRequest(1, 20));