Spring

스프링데이터 JPA (JpaRepository)

chojdsj 2023. 11. 30. 16:07
728x90

 

 

 

 

 

스프링 데이터 JPA

 

 

- 스프링 데이터 JPA는 JPA를 보다 더 편리하게 사용하도록 도와주는 기술이다.

 

- 개발자가 데이터 액세스 계층을 구현하는데 필요한 많은 반복적인 코드를 줄이고, 간단한 설정을 통해 데이터베이스와의 상호 작용을 가능하게 하는 것입니다.

 

- JpaRepository와 같은 인터페이스를 사용하여 기본적인 CRUD(Create, Read, Update, Delete) 기능을 제공받을 수 있습니다

 

- Spring Data JPA는 JPA를 사용하여 데이터베이스와 상호 작용하는데 도움을 주는 스프링 프레임워크의 일부입니다.

 

 

 

 

 

 

JpaRepository

 

 

 

- JpaRepository는 Spring Data JPA에서 제공하는 인터페이스로, 기본적인 CRUD(Create, Read, Update, Delete) 기능을 제공하는 레파지토리 인터페이스입니다.

 

- JpaRepositoryCrudRepository를 확장하고 있으며, PagingAndSortingRepositoryQueryByExampleExecutor 인터페이스도 함께 확장합니다.

 

 

 

 

 

 

 

 

-> 이 인터페이스는 JpaRepository 인터페이스와 MemberRepository 인터페이스 두 인터페이스를 다중 상속받고 있다. Spring Data JPA의 특징 중 하나이다.

 

-> MemberRepository의 findByName 메서드를 재정의 하고 있다.

 

-> JpaRepository제네릭 형식을 사용하며, 첫 번째 매개변수는 엔터티의 타입(Member), 두 번째 매개변수는 엔터티의 기본 키(Long - 대부분의 경우 자료형이 Long이 됩니다)입니다.

 

-> JpaRepository는 기본적인 CRUD 기능을 제공합니다. save, findById, findAll, delete, count 등의 메서드를 자동으로 제공합니다.

 

-> JpaRepository에서 제공하는 표준 메서드는 위 경우에는 findById로 속성을 찾는 메서드이다. 하지만 findByName을 사용했다. 메서드 생성 규칙은 findBy로 정해져 있지만 뒤에 오는 속성은 엔터티 내에 존재하는 속성이라면 바꿔서 사용해도 된다.