Spring Data JPA

MINIMI·2023년 4월 14일

JPA

목록 보기
8/9
post-thumbnail

8-1.개념

1. 스프링 데이터 JPA

  • Spring 프레임 워크에서 JPA를 편리하게 사용할 수 있도록 제공하는 Spring Data 모듈 중 하나
  • JPA를 추상화시킨 Repository라는 인터페이스 사용
  • 쿼리메소드를 호출하는 것 만으로도 손쉽게 SQL문 생성

2. 특징

  • Spring 및 JPA 기반의 Repository 구축을 위해 인터페이스와 쿼리메소드 제공
  • Querydsl 쿼리 지원 및 이에 따른 안전한 JPA 쿼리 처리
  • Pagenation 지원
  • Spring Data JPA를 사용하면 기존의 EntityManagerFactory, EntityManager, EntityTrasaction 같은 객체 필요 없음

3. Repository 인터페이스

  • 인터페이스 상속 구조
  • 인터페이스 종류 및 설명
    • Repository
      • 기능 없음
    • CrudRepository
      • CRUD 기능 제공
    • PagingAndSortingRepository
      • 검색 및 검색 결과를 페이징 처리하고자 할 경우 사용
    • JpaRepository
      • 영속성 컨텍스트 플러시 및 배치에서 레코드 삭제와 같은 일부 JPA 관련 추가 방법 제공

4. 쿼리메소드

  • JPQL을 메소드로 대신 처리할 수 있도록 제공하는 기능
  • 메소드의 이름으로 필요한 쿼리를 대신 만들어주는 기능
  • "find + (엔티티이름) + By + 변수 이름" 과 같이 네이밍 룰만 알면 사용 가능
  • 엔티티 이름 생략 가능
  • 쿼리 메소드 유형

사용 방법

  • Service에서 엔티티 그대로 사용하면 훼손 될 가능성이 있으므로 비영속 객체(DTO)로 변경해서 반환

참고

https://gitlab.com/java702/10.-jpa/chap07.spring_jpa.git

profile
DREAM STARTER

0개의 댓글