Spring/개인 공부

[Spring Data JPA] JpaRepository 완전 정복 – 핵심 기능과 직접 SQL 쿼리 비교

코딩하는냥이 2025. 7. 2. 16:53
반응형

✅ JpaRepository란?

Spring Data JPA에서 제공하는 인터페이스로, JPA 기반의 데이터베이스 작업을 아주 쉽게 처리할 수 있도록 도와줍니다.

JpaRepository를 상속받아 인터페이스를 작성하면, 복잡한 SQL 없이도 DB 테이블에 접근할 수 있습니다.


📌 기본 구조

public interface QuestionRepository extends JpaRepository<Question, Integer> {
    // 필요하면 여기에 커스텀 쿼리 메서드 추가
}
  • Question은 엔티티 클래스, Integer는 PK(Primary Key, 기본키)의 타입입니다.

📌 제공 기능

1. findAll() : 모든 데이터 조회

SELECT * FROM question;

2. findById(ID id) : id로 데이터 한 개 조회

SELECT * FROM question WHERE id = ?;

3. save(Entity e) : 데이터 저장(Insert/Update)

INSERT INTO question (subject, content, create_date) VALUES (?, ?, ?);
UPDATE question SET subject = ?, content = ? WHERE id = ?;

4. deleteById(ID id) : id로 데이터 한 개 삭제

DELETE FROM question WHERE id = ?;

5. count() : 총 데이터 개수

SELECT COUNT(*) FROM question;

6. findAll(Pageable pageable) : 페이징 처리된 결과 조회

SELECT * FROM question ORDER BY id DESC LIMIT 10 OFFSET 10;
-- 여기서
-- LIMIT 10 : 10개 가져온다.
-- OFFSET 10 : 10개 건너뛴다.

7. existsById(ID id) : id로 데이터 한 개 존재 여부 확인

SELECT COUNT(*) FROM question WHERE id = ?;

마지막으로, JpaRepository가 없으면 직접 적어야 할 쿼리문을 간단한 메서드 호출만으로 처리할 수 있게 도와줍니다.