본문 바로가기

dev/JPA

Spring Boot Data JPA

Spring Boot Data JPA를 사용하는 방법입니다.

 

간단히 진행할 예정이라 Maven Profile, Logger, Transaction 등등 설정은 제외했습니다.

 

 

먼저 Spring Boot 프로젝트를 생성합니다.

 

 

따로 작성하지 않고 디폴트 설정으로 하고 Next 버튼 클릭합니다.

 

 

현재 설치되어 있는 jdk 버전에 따라 Spring Boot 버전을 선택해야 하는데

 

저는 openJdk 1.8 버전이므로 Spring Boot 2 버전으로 선택했습니다.

 

그리고 HIbernate 연동하기 위해 Maven dependency의 Lombok, Spring Data JPA, PostgreSQL Driver, Spring Web을 추가하고 Finish 버튼 클릭합니다.

 

 

pom.xml에서 Spring Boot버전, jdk 버전, Maven dependencies, build를 확인합니다.

 

 

pom.xml의 Dependency Hierarchy를 확인해 보면 spring-boot-starter-data-jpa의 구현체가 Hibernate임을 확인할 수 있습니다.

 

 

application.yml에서 PostgreSQL 접속 정보를 입력합니다.

 

 

PostgreSQL에 테스트 용도 테이블을 생성합니다.

 

 

테이블과 매핑될 엔티티 클래스를 작성합니다.

 

위에 작성한 어노테이션은 아래에서 간단하게 확인하면 됩니다.

 

@Entity 어노테이션: 이 클래스가 Entity임을 의미

@Table 어노테이션: 매핑될 테이블 정보 입력(스키마, 테이블명)

@Data 어노테이션: Getter, Setter, ToString 등 자바 VO/DTO 관련 기능 제공

@NoArgsConstructor 어노테이션: 파라미터가 없는 기본 생성자 생성 및 접근 제한자 설정

@Id 어노테이션: 테이블의 기본키 의미

@Column 어노테이션: 테이블 컬럼 의미

@Builder 어노테이션: 이 클래스의 생성자 의미

 

 

다음으로 쿼리를 실행할 인터페이스를 작성합니다.

 

@Repository 어노테이션은 이 인터페이스로부터 생성된 인스턴스는 DB에 접속하여 I/O작업을 하는 것을 의미합니다.

 

JpaRepository를 상속받는데 제너릭으로 엔티티 클래스와 기본키 타입을 선언합니다.

 

각 메서드는 아래에서 간단하게 확인하면 됩니다.

 

findAll: 테이블 전체 데이터 조회

findById: 기본키로 테이블 조회

save: 데이터 추가 또는 수정, 일종의 upsert 개념

deleteById: 기본키로 데이터 삭제

 

그리고 아래의 컨트롤러와 서비스는 기본적인 CRUD를 위한 클래스들로 가볍게 보시면 됩니다.

 

 

 

 

실제로 잘 동작하는지 확인하기 위해 Postman으로 테스트합니다.

 

 

전체 테이블 데이터 조회 요청했는데 데이터 전체 조회되었습니다.

 

 

기본키로 데이터 조회 요청했는데 해당 기본키의 데이터가 조회되었습니다. 

 

 

 

데이터를 추가 요청했는데 해당 데이터가 추가되었습니다.

 

 

 

데이터를 수정 요청했는데 해당 데이터가 수정되었습니다.

 

 

 

기본키로 데이터 삭제 요청했는데 해당 기본키의 데이터가 삭제되었습니다.

 

직접 구현하면서 느꼈는데 그렇게 어렵지 않아서 쉽게 할 수 있을 거 같습니다.

'dev > JPA' 카테고리의 다른 글

JPA Infinite Recursion 예외 처리  (0) 2023.08.29
Spring Boot JPA QueryDSL  (0) 2023.08.29
Spring Boot JPA ID IDENTITY  (0) 2023.08.28
Spring Boot JPA Join  (0) 2023.08.28
Spring Boot JPA 복합키  (0) 2023.08.24