일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- k8s
- effectivejava
- 오블완
- 스프링부트
- Spring
- 이펙티브 자바
- kubernetes
- 스프링 핵심원리
- 자바스크립트
- 이차전지관련주
- ElasticSearch
- 코딩테스트
- 예제로 배우는 스프링 입문
- 스프링핵심원리
- 알고리즘
- Sort
- 클린아키텍처
- 이펙티브자바
- JavaScript
- 카카오 면접
- java
- 스프링
- 티스토리챌린지
- Effective Java
- 알고리즘정렬
- 엘라스틱서치
- 김영한
- Effective Java 3
- 카카오
- 자바
- Today
- Total
Kim-Baek 개발자 이야기
JPA와 Spring Data JPA 본문
JPA ( java persistence API ) 는 자바 표준 ORM이다
Entity
Entity 는 데이터 베이스에서 영속적으로 저장된 데이터를 자바 객체로 매핑한 것
EntityMananger
Entity를 필요에 따라 데이터 베이스와 동기화하는 역할을 담당하는 것. 영속성 컨텍스트 ( Persistence Context ) 라는 엔티티를 관리하는 영역이 있다.
영속성 컨텍스트가 데이터베이스의 캐시와 같은 역할을 한다. 여기에 작업이 수행되더라도 즉시 데이터 베이스 반영은 안됨
영속성 컨텍스트는 트랜잭션마다 준비되기 때문에 엔티티는 같은 트랜잭션에서만 공유되고 다른 트랜잭션에서 처리 중인 엔티티는 보이지 않음
트랜잭션 종료되면 모든 엔티티는 분리 상태다.
스프링 데이터란
데이터베이스나 캐시 서버 등 데이터에 접근하기 위한 코드를 줄이는 것을목적으로 하는 스프링 프로젝트다. Repository를 구현하는 것을 권장한다. 구현은 개발자에게 맡겨져 있는데, 이것을 최소화하는 것이 목적이다,
스프링 데이터 JPA
이제 사용자는 EntityManager의 API를 직접 호출하지 않고, 스프링 데이터 JPA가 제공하는 것을 호출한다. 이것은 스프링 데이터 JPA가 제종하는 SimpleJpaRepository 클래스나 그 상위 클래스에 작성된다.
사용자는 엔티티 적용 Repository 인터페이스를 작성한다. 이 인터페이스가 JpaRepositroy를 상속한다. 이러면 DI 컨테이너를 초기화 하는 시점에 사용자가 만든 인터페이스에 대해 SimpleJpaRepository를 위임하는 프락시 클래스를 생성하고, 빈으로 등록한다.
'개발' 카테고리의 다른 글
[카카오 면접] Garbage Collector 의 여러 방법 (0) | 2020.08.07 |
---|---|
[카카오 면접] Blocking I/O, Syncronous Non-Blocking I/O, Asyncronous Non-Blocking I/O (1) | 2020.08.06 |
JPA Fetch 전략과 N+1 문제 (0) | 2020.08.05 |
JPA란? ORM vs SQL Mapper (0) | 2020.08.04 |
JPA 트랜잭션의 전파 및 격리 (0) | 2020.08.04 |