JPA (Java Persistence API)
: JPA는 Java에서 사용하는 ORM 기술의 표준 사양, 스펙이다.
: 표준 사양, 스펙이란 Java의 인터페이스로 정의되어 있다는 의미로, 이를 구현한 구현체가 따로 있다는 것을 의미.
: JPA 학습 = JPA 스펙 구현체를 학습
Hibernate ORM
:JPA 스펙의 구현체 중 하나.
JPA 위치
: JPA 는 데이터 액세스 계층 내부에 있음.
: 데이터 액세스 계층이 상단이고 데이터베이스가 하단이라면, JPA - Hibernate ORM - JDBC API 순으로 존재한다.
: 마지막 과정인 JDBC API는 Hibernate ORM의 내부에서 이용하는 부분이다.
JPA 용어에서 P의 의미
-Persistence
: JPA는 ORM 기술이므로 엔티티 객체와 데이터베이스 테이블을 매핑하고 이를 통해 전달하는 방법으로 데이터를 저장한다. 이 때, JPA는 테이블과 매핑되는 엔티티 객체의 정보를 특정 장소에서 지속되도록 보관하기 때문에 Persistence라는 단어를 쓴다.
: 그 장소의 이름은 Persistence Context이다.
-Persistence Context
: 영속성 컨텍스트에는 `1차 캐시`라는 영역과 `쓰기 지연 SQL 저장소`라는 영역으로 나뉜다.
JPA API 사용
-의존성 라이브러리 추가
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
-application.yml 설정
jpa:
hibernate:
ddl-auto: create # (1) 스키마 자동 생성
show-sql: true # (2) SQL 쿼리 출력
(1) : 해당 설정을 통해 엔티티 객체와 매핑되는 테이블을 데이터베이스에 자동으로 생성한다. Spring Data JDBC에서는 Schema.sql 파일을 미리 만들었어야 했다.
(2) : JPA API를 통해 실행되는 SQL 쿼리 로그를 출력해준다.
@Configuration
: 해당 애너테이션이 있으면 Spring에서 Bean 검색 대상 중 하나인 Configuration 클래스로 인식한다.
: 해당 애너테이션이 붙은 클래스 내에 @Bean 애너테이션이 붙은 메서드를 검색하고, 해당 메서드가 반환하는 객체를 Spring Bean으로 추가한다.
return args-> { };
: CommandLineRunner 객체 반환값을 위와 같은 람다식으로 사용하면 애플리케이션 부트스트랩 과정이 완료된 후에 코드가 실행됨.
>@Entity, @Id, @GeneratedValue
'코드스테이츠_국비교육 > [Section3]' 카테고리의 다른 글
50.01_[Spring MVC] JPA 기반 데이터 액세스 계층_Spring Data JPA_22.11.02 (0) | 2022.11.03 |
---|---|
49.02_[Spring MVC] JPA 기반 데이터 액세스 계층_엔티티 매핑(미완)_22.11.01 (0) | 2022.11.02 |
48.02_[Spring MVC] Spring Data JDBC_Pagination API_22.10.31 (0) | 2022.10.31 |
48.01_[Spring MVC] Spring Data JDBC_정리_22.10.31 (0) | 2022.10.31 |
47.03_[Spring MVC] Spring Data JDBC_서비스 및 레포지토리 구현_22.10.28 (0) | 2022.10.30 |