자바/QueryDsl

[DataJpa] 데이터 JPA 공통 인터페이스

OverTheHorizon3410 2023. 11. 15. 20:39

스프링 데이터 JPA 공통 인터페이스

  • JpaRepository
    • CRUD 및 추가적인 JPA 관련 기능을 제공하는 인터페이스이다.

상속 구조: JpaRepositoryPagingAndSortingRepositoryCrudRepository를 확장합니다.

JpaRepository 주요 기능

  1. CRUD 기능
    • save(S entity): 엔티티 저장 또는 수정
    • delete(T entity): 엔티티 삭제
    • findOne(ID id): 엔티티 조회
    • findAll(...): 모든 엔티티 조회, 정렬 및 페이징 가능
  1. 추가 기능
    • getOne(ID id): 엔티티 프록시 조회
    • flush(): JPA 플러시 수행
    • saveAndFlush(T entity): 저장 후 즉시 플러시
    • deleteInBatch(Iterable<T> entities), deleteAllInBatch(): 배치 삭제

save(S) 메소드

  • 엔티티 식별자
    • 식별자가 없거나 null인 경우 EntityManager.persist()를 호출해 새로운 엔티티로 판단
    • 식별자가 있는 경우 EntityManager.merge()를 호출해 기존 엔티티로 판단

Uploaded by N2T