반응형
JPA에서는 데이터베이스에 직접 쿼리문을 작성하지 않고도
인터페이스만 정의하면 자동으로 CRUD(조회, 생성, 수정, 삭제) 메서드를 사용할 수 있습니다.
또한, 메서드 이름만 잘 지어주면 원하는 조건으로 데이터를 검색할 수도 있습니다.
📌 예제 코드
package com.mysite.sbb.question;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
public interface QuestionRepository extends JpaRepository<Question, Integer> {
Question findBySubject(String subject);
Question findBySubjectAndContent(String subject, String content);
List<Question> findBySubjectLike(String subject);
}
💬 코드 설명
- JpaRepository<Question, Integer>
Question 엔티티의 기본적인 CRUD 기능을 자동으로 제공합니다.
(Integer는 기본키 타입) - findBySubject(String subject)
subject 값이 일치하는 질문 한 건을 반환합니다. - findBySubjectAndContent(String subject, String content)
subject와 content가 모두 일치하는 질문 한 건을 반환합니다. - findBySubjectLike(String subject)
subject 값에 특정 문자열이 포함된(유사 검색) 질문 목록을 반환합니다.
(예: "스프링%"와 같이 사용하면 "스프링"으로 시작하는 모든 질문 검색) - 메서드 이름 규칙
JPA는 메서드 이름만 보고 자동으로 SQL 쿼리를 만들어줍니다.
(findBy필드명, findBy필드명And필드명, findBy필드명Like 등)
💡포인트 정리
- JpaRepository를 상속하면 CRUD는 물론,
다양한 조건 검색 메서드도 자동으로 만들 수 있다. - 메서드 이름만 규칙에 맞추면
별도의 SQL 작성 없이 원하는 검색이 가능하다. - findBySubjectLike 등은
유사 검색/패턴 검색(와일드카드, %)에도 활용된다.
📌정리하자면, 이번 글에서는
리포지토리 인터페이스 생성과
메서드 쿼리를 활용한 데이터 조회 방법을 알아봤습니다.
JPA의 강력한 자동화 기능을 적극 활용하면
복잡한 SQL 없이도 데이터 처리 코드를
아주 깔끔하게 만들 수 있습니다.
'Spring > 실습 정리' 카테고리의 다른 글
Spring Boot 11강 - 상세 페이지 구현과 NotFound 예외 처리 (0) | 2025.07.02 |
---|---|
Spring Boot 10강 - Thymeleaf로 질문 목록 테이블 출력하기 (0) | 2025.07.02 |
Spring Boot 9강 - Service 계층과 Controller에서 데이터 조회 및 뷰 연결 (0) | 2025.07.02 |
Spring Boot 7강 - JPA 엔티티와 관계 매핑(Question & Answer 예제) (2) | 2025.06.30 |
Spring Boot 6강 - JPA & H2 데이터베이스 연동을 위한 dependencies 추가와 application.properties 설정 (0) | 2025.06.30 |
Spring Boot 5강 - 컨트롤러에서 HTML 코드 직접 반환하기 (0) | 2025.06.30 |