DB

[JPA] JPA, 스프링 데이터 JPA

milna 2023. 10. 25. 04:37

JPA (Java Persistence API) : 기존의 반복 코드와 기본적인 SQL을 직접 만들어서 실행해주기 때문에 편리하다.

개발 생산성을 크게 높일 수 있다.

SQL과 데이터 중심 설계 -> 객체 중심의 설계

 

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

build.gradle 파일에 jpa 라이브러리 추가

* 기존에 사용하던 jdbc 라이브러리는 제거해도 된다.

 

 

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=none

application.properties에 JPA 설정 추가

 

show-aql : JPA가 생성하는 SQL 출력

ddl-auto : create를 사용하면 엔티티 정보를 바탕으로 테이블을 자동으로 생성해준다.

none을 사용하면 해당 기능을 끈다.

 

import org.springframework.transaction.annotation.Transactional
@Transactional
public class MemberService {}

서비스 계층에 트랜잭션 추가

* JPA를 통한 모든 데이터 변경은 트랜잭션 안에서 실행해야 한다.

 

 

 

스프링 데이터 JPA : JPA를 편리하게 사용하도록 도와주는 기술

리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있다.

 

반복적인 기본 CRUD 기능을 제공

findByName(), findByEmail() 등 메서드 이름 만으로 조회 기능 제공

페이징 기능 자동 제공

 

* 스프링 데이터 JPA보다 JPA를 먼저 학습하는 게 중요