spring framework에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트
org.springframework.date.jpa.repository.JpaRepository
인터페이스에 count, delete, deleteAll, deleteAll, deleteById, existsById, findById, save ..c.스프링 데이터 JPA 적용
public interface MemberRepository extends JpaRepository<Member, Long> {
Member findByUsername(String username);
// select m from Member m where username = :username
}
public interface ItemRepository extends JpaRepository<Item, Long> {
}
Dependency
build.gradle 파일의 dependencies 부분에 다음을 추가
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
Spring Data JPA는 JpaRepository
라는 공통 인터페이스를 제공한다.
이 인터페이스는 기본적인 CRUD와 페이징 등 유용한 기능을 제공해주며, 적용하는 방법도 간단하다.
JpaRepository<T, ID>
를 상속하는 인터페이스를 구성하면 된다.
T
:엔티티 타입ID
식별자 타입public interface EntityRepository extends JpaRepository<T,ID> {}
🎈 @Repository
어노테이션은 생략 가능하다. 컴포넌트 스캔과 JPA 예외를 스프링 예외로 변환하는 과정을 스프링 데이터 JPA가 자동으로 처리해준다.
메서드 이름에 관한 규칙은 다음과 같다. (By 다음에는 필드명이 들어간다.)