728x90
Spring Data JPA에서 메서드 이름을 사용하여 쿼리를 생성할 때 사용되는 일련의 키워드가 있다.
각 키워드는 특정한 조건을 나타내며, 이를 조합하여 원하는 검색 조건을 만들어 낼 수 있다.
이러한 규칙들은 메서드 이름을 통해 JPA 쿼리 메서드를 자동으로 생성하는데 사용된다.
FindBy
- 해당 속성 값에 대해 일치하는 엔티티를 검색합니다.
- 예시: findByFirstName(String firstName), findByAge(int age)
And, Or
- 여러 개의 조건을 결합하여 검색합니다. And는 모든 조건을 만족해야 하고, Or는 조건 중 하나만 만족하면 됩니다.
- 예시: findByFirstNameAndLastName(String firstName, String lastName), findByAgeOrFirstName(int age, String firstName)
Like/NotLike
- 해당 속성 값이 지정된 문자열과 일치하는 엔티티를 검색합니다. % 와 _와 같은 와일드카드를 사용하여 부분적인 일치도 가능합니다. NotLike는 지정된 문자열과 일치하지 않는 엔티티를 검색합니다.
- 예시: findByFirstNameLike(String pattern), findByLastNameNotLike(String pattern)
StartsWith/StartingWith
- 해당 속성 값이 지정된 문자열로 시작하는 엔티티를 검색합니다.
- 예시: findByFirstNameStartsWith(String prefix), findByLastNameStartingWith(String prefix)
EndsWith/EndingWith
- 해당 속성 값이 지정된 문자열로 끝나는 엔티티를 검색합니다.
- 예시: findByFirstNameEndsWith(String suffix), findByLastNameEndingWith(String suffix)
IsNull/IsNotNull
- 해당 속성 값이 null인 엔티티를 검색하거나, null이 아닌 엔티티를 검색합니다.
- 예시: findByMiddleNameIsNull(), findByAgeIsNotNull()
True/False
- Boolean 속성이 true 또는 false인 엔티티를 검색합니다.
- 예시: findByActiveTrue(), findByEnabledFalse()
Before/After
- 날짜 형식의 속성 값을 기준으로, 지정된 날짜 이전이나 이후의 엔티티를 검색합니다.
- 예시: findByStartDateBefore(Date date), findByEndDateAfter(Date date)
LessThan/GreaterThan
- 지정된 값보다 작은 값 또는 큰 값의 엔티티를 검색합니다.
- 예시: findByAgeLessThan(int age), findBySalaryGreaterThan(double salary)
Between
- 지정된 두 값 사이에 속하는 엔티티를 검색합니다.
- 예시: findByAgeBetween(int minAge, int maxAge), findBySalaryBetween(double minSalary, double maxSalary)
OrderBy
- 검색 결과를 특정 속성을 기준으로 정렬합니다.
- 예시: findByLastNameOrderByFirstNameAsc(String lastName), findByJoinDateOrderBySalaryDesc(Date joinDate)
countBy
- 해당 조건을 만족하는 엔티티의 수를 반환합니다.
- 예시: countByAge(int age), countBySalaryGreaterThan(double salary)
이러한 규칙들을 조합하여 메서드 이름을 생성하면, Spring Data JPA가 자동으로 해당하는 쿼리를 생성하고 실행한다.
728x90
'spring > spring jpa' 카테고리의 다른 글
[JPA] @MapsId로 FK를 PK로 설정하기 (0) | 2024.04.01 |
---|---|
[JPA][스프링 부트 핵심 가이드] 연관관계 매핑과 영속성 전이 (0) | 2024.02.19 |
[JPA] JPQL,쿼리메서드, QueryDSL, JPA Auditing - [스프링 부트 핵심 가이드] (0) | 2024.02.15 |
[JPA][스프링 부트 핵심 가이드] JPA & 영속성 컨텍스트 & 엔티티 매니저 (0) | 2024.02.08 |
[JPA][스프링 부트 핵심 가이드] ORM의 개념과 장단점 (0) | 2024.02.08 |