Spring/실습 정리

Spring Boot 8강 - JPA 리포지토리와 메서드 쿼리로 데이터 조회하기

코딩하는냥이 2025. 7. 2. 11:32
반응형

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 없이도 데이터 처리 코드를
아주 깔끔하게 만들 수 있습니다.