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를 먼저 학습하는 게 중요