#.Spring Data JPA는 JpaRepository를 기반으로 더욱 쉽게 데이터베이스를 사용할 수 있는 아키텍처를 제공
#.스프링 부트로 JpaRepository를 상속하는 인터페이스를 생성하면 기존의 다양한 메서드 활용가능
#.리포지토리(Repository)
-Spring Data JPA가 제공하는 인터페이스
-엔티티가 생성한 데이터베이스에 접근하는데 사용
-생성을 위해서는 접근하려는 테이블과 매핑되는 엔티티에 대한 인터페이스를 생성하고, JpaRepository를 상속받으면 된다.
public interface ProductRepository extends JpaRepository<Product, Long>{
}
#.리포지토리 메서드 생성 규칙
- FindBy : SQL문의 where 절 역할을 수행하는 구문, 뒤에 엔티티의 필드값을 입력해서 사용
findByName(String name)
-AND, OR : 조건을 여러 개 설정하기 위해 사용
findByNameAndEmail(String name, String email)
-Like/NotLike : SQL문의 like와 동일한 기능을 수행하며, 특정 문자를 포함하는지 여부를 조건으로 추가
비슷한 키워드로 Containing, Contains, isContaing
findByTitleLike(String title)
-StartsWith/StartingWith : 특정 키워드로 시작하는 문자열 조건을 설정
List<Movie> findByRatingStartsWith(String rating);
-EndsWith/EndingWith : 특정 키워드로 끝나는 문자열 조건을 설정
List<Movie> findByDirectorEndsWith(String director);
-IsNull/IsNotNull : 레코드 값이 Null이거나 Null이 아닌 값을 검색
findByAge(Is)Null
findByAge(Is)NotNull
-True/False : Boolean 타입의 레코드를 검색할 때 사용
findByActiveTrue() //… where x.active = true
findByActiveFalse() //… where x.active = false
-LessThan/GreaterThan : 특정 값을 기준으로 대소 비교를 할 때 사용
findByAgeLessThan //… where x.age < ?1
findByAgeGreaterThan //… where x.age > ?1
-Between : 두 값 사이의 데이터를 조회
findByStartDateBetween //… where x.startDate between ?1 and ?2
-OrderBy : SQL 문에서 order by와 동일한 기능을 수행
List<Product> findByNameOrderByPriceAsc(String name); //가격순으로 이름 조회
- countBy :SQL 문의 count와 동일한 기능을 수행하며, 결과값의 개수를 추출
'JPA' 카테고리의 다른 글
[JPA]어노테이션 (0) | 2023.04.11 |
---|---|
[JPA]엔티티 설계 (0) | 2023.01.17 |