반응형
- Spring Data Jpa는 JpaRepository를 기반으로 더욱 쉽게 DB를 사용할 수 있는 아키텍처 제공
리포지터리 인터페이스 생성
- 리포지터리는 Spring Data JPA가 제공하는 인터페이스
import entity.Product;
import org.springframework.data.jpa.repository.JpaRepository;
// 예제 6.7
public interface ProductRepository extends JpaRepository<Product, Long> {
}
- JpaRepository를 보면 밑 코드와 같이 되어있다.
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package org.springframework.data.jpa.repository;
import java.util.List;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Sort;
import org.springframework.data.repository.ListCrudRepository;
import org.springframework.data.repository.ListPagingAndSortingRepository;
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.repository.query.QueryByExampleExecutor;
@NoRepositoryBean
public interface JpaRepository<T, ID> extends ListCrudRepository<T, ID>, ListPagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
void flush();
<S extends T> S saveAndFlush(S entity);
<S extends T> List<S> saveAllAndFlush(Iterable<S> entities);
/** @deprecated */
@Deprecated
default void deleteInBatch(Iterable<T> entities) {
this.deleteAllInBatch(entities);
}
void deleteAllInBatch(Iterable<T> entities);
void deleteAllByIdInBatch(Iterable<ID> ids);
void deleteAllInBatch();
/** @deprecated */
@Deprecated
T getOne(ID id);
/** @deprecated */
@Deprecated
T getById(ID id);
T getReferenceById(ID id);
<S extends T> List<S> findAll(Example<S> example);
<S extends T> List<S> findAll(Example<S> example, Sort sort);
}
상속은 다음과 같다.
리포지터리 메서드의 생성 규칙
- 레포지터리 몇 가지 명명 규칙에 따라 커스텀 메서드 생성 가능
반응형