230309 - Spring Data JPA - 1

Cornchip·2023년 3월 9일
0

Today-I-Learned

목록 보기
21/28

목차
1. Spring Data JPA 인터페이스



1. Spring Data JPA 인터페이스

1) Spring Data JPA 인터페이스

  • 단계별로 필요한 기능까지만 사용 가능
  • Repository: 기본 repository 인터페이스. 어떤 메소드도 제공하지 않음
  • CrudRepository: Repository + CRUd 기능 제공
  • PagingAndSortingRepository: CrudRepository + 페이징, 정렬 기능 제공
  • JpaRepository: PagingAndSortingRepository + Spring Data JPA repository 전체 기능

2) Query method

  • 인터페이스에 작성한 메소드 이름이 곧 쿼리 표현이 됨
  • ex:
List<Event> findByEventStatusAndEventNameOrCapacity(String eventStatus, String eventName, Integer Capacity);
  • 다이나믹 쿼리를 만들 수는 없음
  • 사용 가능한 키워드
    • distinct, and, or, is, not, between, lessThen, lessThanEqual, greaterThen, greaterThenEqual
    • null, isNotNull, like, startingWith, endingWith, containing, orderBy, in, true, false, ignoreCase
    • join 등 복잡한 표현은 불가

3) 몇 가지 애노테이션들

  • @Param: 쿼리 메소드 입력 파라미터에 사용하여 애노테이션 기반 파라미터 바인딩할 때 사용
  • @Query: 직접 JPQL을 작성하고 싶을 때 사용

    하지만 되도록 사용하지 말 것. Spring Data JPA를 사용한다는 것은 이것을 몰라도 된다는 의미이기 떄문이다.

  • @NoRepositoryBean: 빈으로 등록하고 싶지 않은 인터페이스를 지정할 수 있음
    • 특정 쿼리 메소드를 기본 메소드로 지정하는 방식으로 운영 가능
    • 특정 메소드를 선택적으로 사용하거나 api에 노출하고자 할 때도 사용하는 테크닉
profile
cornchip

0개의 댓글