Corgi [Spring] Spring Data의 findBy 메서드 네이밍 규칙: 데이터베이스 조회를 위한 편리한 규칙
본문 바로가기
코딩/스프링(Spring)

[Spring] Spring Data의 findBy 메서드 네이밍 규칙: 데이터베이스 조회를 위한 편리한 규칙

by 짱아아빠 2023. 6. 24.
반응형


안녕하세요! 이번에는 Spring Data에서 제공하는 findBy 메서드의 네이밍 규칙에 대해 알아보겠습니다. Spring Data는 개발자가 데이터베이스 조회를 간편하게 수행할 수 있도록 메서드 네이밍 규칙을 제공합니다. 이를 통해 별도의 쿼리 작성 없이 메서드명만으로 데이터베이스 조회를 수행할 수 있습니다.

1. findBy 메서드의 역할
Spring Data에서의 findBy 메서드는 데이터베이스 조회를 위한 메서드입니다. 이 메서드를 활용하면 특정 필드의 값을 기준으로 데이터를 조회할 수 있습니다. findBy 메서드는 주로 Spring Data의 Repository 인터페이스에서 사용되며, 해당 인터페이스를 상속받는 Repository 클래스에서 구현됩니다.

2. findBy 메서드의 네이밍 규칙
Spring Data는 findBy 메서드의 네이밍 규칙을 통해 메서드명을 해석하고, 해당 필드를 기준으로 데이터를 조회합니다. findBy 뒤에는 해당 필드의 이름을 붙여주면 됩니다. 일반적으로 다음과 같은 형식을 따릅니다.

```java
findBy{FieldName}
```

여기서 {FieldName}은 조회하고자 하는 필드의 이름입니다. 대소문자를 구분하지 않으며, 필드 이름 뒤에는 타입을 명시할 수 있습니다. 예를 들어, name 필드를 기준으로 조회하고자 한다면 다음과 같이 메서드를 작성할 수 있습니다.

```java
findByname(String name);
```

반응형


3. 조건문 추가하기
findBy 메서드를 사용하여 데이터베이스 조회를 할 때, 필드의 값을 비교하는 조건문을 추가할 수도 있습니다. 이를 위해 조건문 키워드를 메서드명에 추가하면 됩니다. 주요한 조건문 키워드는 다음과 같습니다.

- And: 여러 개의 조건을 동시에 만족하는 데이터 조회
- Or: 여러 개의 조건 중 하나라도 만족하는 데이터 조회
- Between: 특정 범위에 속하는 데이터 조회
- Like: 특정 패턴을 포함하는 데이터 조회
- 등등...

예를 들어, name 필드가 "John"이고, age 필드가 25보다 큰 데이터를 조회하고자 한다면 다음과 같이 메서드를 작성할 수 있습니다.

```java
findBynameAndAgeGreaterThan(String name, int age);
```

4. 기타 사용 가능한 키워드
Spring Data에서는 findBy 메서드에 추가로 사용 가능한 키워드가 있

습니다. 이를 통해 데이터 정렬, 제한된 개수의 데이터 조회 등 다양한 기능을 제공합니다. 주요한 키워드는 다음과 같습니다.

- OrderBy: 정렬 기준 설정
- Top, First, Last: 상위/하위 n개의 데이터 조회
- Distinct: 중복 제거

예를 들어, name 필드로 정렬된 상위 5개의 고유한 데이터를 조회하고자 한다면 다음과 같이 메서드를 작성할 수 있습니다.

```java
findTop5BynameOrderBynameAsc(String name);
```

Spring Data의 findBy 메서드 네이밍 규칙을 활용하면 데이터베이스 조회를 간편하게 수행할 수 있습니다. 메서드 네이밍을 통해 별도의 쿼리 작성 없이도 원하는 데이터를 손쉽게 검색할 수 있습니다.

이상으로 Spring Data의 findBy 메서드 네이밍 규칙에 대해 알아보았습니다. 감사합니다.

반응형

댓글