반응형
Spring Data JPA는 자바 개발자들이 JPA(Java Persistence API)를 사용하여 데이터베이스와 상호 작용하는 데 도움이 되는 기능을 제공한다.
Query Methods는 Spring Data JPA의 강력한 기능 중 하나로, 메서드의 이름 규칙을 따라 데이터베이스 쿼리를 자동으로 생성하는 기능을 제공한다.
Query Methods는 기본적으로 인터페이스의 메서드 시그니처를 분석하여 데이터베이스 쿼리를 생성.
이 메서드들은 일반적으로 다음과 같은 규칙을 따른다
- 메서드 이름 규칙
- findBy: 데이터를 조회
- getBy: 데이터를 조회
- readBy: 데이터를 조회
- queryBy: 데이터를 조회
- countBy: 특정 조건에 해당하는 데이터 수를 계산
- deleteBy: 특정 조건에 해당하는 데이터를 삭제
- 메서드의 파라미터 이름을 기반으로 조건을 지정
- 예를 들어,
findByFirstName(String firstName)
는firstName
필드를 기반으로 데이터를 조회
- 예를 들어,
- 연산자를 사용하여 복잡한 조건을 나타냅니다:
findByFirstNameAndLastName(String firstName, String lastName)
는firstName
과lastName
필드를 기반으로 데이터를 조회
- 예약어 사용:
IgnoreCase
,OrderBy
,First
,Top
,Distinct
등의 예약어를 사용하여 추가적인 기능을 구현
예를 들어, Person
엔티티가 있다고 가정해보면
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String firstName;
private String lastName;
private int age;
// 다른 필드들...
}
Spring Data JPA는 다음과 같은 Query Methods를 지원할 수 있다.
public interface PersonRepository extends JpaRepository<Person, Long> {
// firstName 필드를 기반으로 조회
List<Person> findByFirstName(String firstName);
// firstName과 lastName 필드를 기반으로 조회
List<Person> findByFirstNameAndLastName(String firstName, String lastName);
// age 필드를 기반으로 조회
List<Person> findByAge(int age);
// age 필드를 기반으로 조회하고, 특정 조건으로 정렬
List<Person> findByAgeOrderByLastNameAsc(int age);
// firstName 필드를 기반으로 조회하되, 대소문자 무시
List<Person> findByFirstNameIgnoreCase(String firstName);
// 특정 조건에 해당하는 데이터 수 조회
int countByAge(int age);
// 특정 조건에 해당하는 데이터 삭제
void deleteByFirstName(String firstName);
}
위와 같이 작성된 Query Methods는 메서드 이름을 통해 쿼리를 생성하므로, 별도의 쿼리 작성 없이도 데이터베이스 작업을 수행할 수 있습니다. 이를 통해 반복적인 CRUD(Create, Read, Update, Delete) 작업을 보다 간단하게 처리할 수 있다.
반응형
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL] 똥망... (0) | 2023.11.20 |
---|---|
[TIL] JWT(JSON Web Token) (1) | 2023.11.17 |
[TIL]SpringBoot의 JPA (0) | 2023.11.15 |
[TIL ]Entity (1) | 2023.11.14 |
[TIL] JPA(Java Persistence API) (0) | 2023.11.13 |