JpaRepository

장현진·2022년 2월 10일
0

Spring

목록 보기
3/3

Repository

Repository는 entity에 의해 생성된 db에 접근하는 메서드들을 사용하기 위한 인터페이스 이다.
스프링부트에서는 Entity의 기본적인 CRUD가 가능하도록 JpaRepository 인터페이스를 제공한다.

method key wordsample설명
AndfindByEmailAndUserId(String email, String userId)여러필드를 and 로 검색
OrfindByEmailOrUserId(String email, String userId)여러필드를 or 로 검색
BetweenfindByCreatedAtBetween(Date fromDate, Date toDate)필드의 두 값 사이에 있는 항목 검색
LessThanfindByAgeGraterThanEqual(int age)작은 항목 검색
GreaterThanEqualfindByAgeGraterThanEqual(int age)크거나 같은 항목 검색
likefindByNameLike(String name)like 검색
IsNullfindByJobIsNull()null 인 항목 검색
InfindByJob(String … jobs)여러 값중에 하나인 항목 검색
OrderByfindByEmailOrderByNameAsc(String email)검색 결과를 정렬하여 전달




find 외에도 crud를 위한 여러 메소드가 있다.
method설명
long count사용가능한 엔티티 수를 반환 한다.
void delete주언진 엔티티를 삭제한다.
void deleteAll저장소에서 관리하는 모든 엔티티를 삭제한다.
void deleteById주어진 ID를 가진 엔티티를 삭제한다.
lterabel findAllT 타입의 모든 인스턴스를 반환한다.
Optional findByIdID로 엔티티를 검색한다.
S save주어진 엔티티를 저장한다.
boolean existsById(ID id)주어진 ID를 가진 엔티티가 존재하는 지 여부를 반환한다.





Repository 구조

Repository상속 관계는 위그림과 같으며 스프링에서 JpaRepository<>를 상속함으로써 @Transactional 어노테이션을 생략하고 사용할수 있게 된다.
실제 JpaRepository의 메소드들은

다음과 같이 제네릭으로 구현되어 있다. 이를 이용해 위에서 서술한 키워드 규칙으로 여러 쿼리들을 커스텀하여 사용할수 있다.








좀 더 자세한 키워드와 쿼리를 보고 싶다면 JPA 레퍼런스를 참고하면 된다.

http://docs.spring.io/spring-data/jpa/docs/1.10.1.RELEASE/reference/html/#jpa.sample-app.finders.strategies

0개의 댓글