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가 없으면 직접 적어야 할 쿼리문을 간단한 메서드 호출만으로 처리할 수 있게 도와줍니다.