Step-by-Step

[Java Spring] JPA에 대한 이해 본문

언어/Java Spring

[Java Spring] JPA에 대한 이해

희주(KHJ) 2022. 3. 16. 18:36

JPA (Java Persistence API; 자바 영속성 API)

- 자바 플랫폼 SE와 자바 플랫폼 EE를 사용하는 응용프로그램에서 관계형 데이터베이스의 관리를 표현하는 자바 API

- 일반적으로 데이터를 저장할때 RAM(휘발성) → 하드디스크(비휘발성)로 옮김

- JAVA에 있는 데이터를 하드디스크의 DB로 옮겨 영구 저장을 할 수 있도록 해주는 API

※ 영속성(Persistence) : 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성

+ 영속성은 파일시스템, 관계형 데이터베이스, 객체 데이터베이스 등을 활용하여 구현

 

JPA 특징

1. ORM(Object Relational Mapping) 기술

- 객체와 관계형 데이터베이스의 데이터를 자동으로 Mapping(연결)해주는 것

- 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 OOP의 클래스와 RDB의 테이블모델간 불일치를 해소하는 역할

ex) 데이터 타입이 class인 경우 ORM이 mapping해서 DB에 넣어줌 (+ 포인터 넣어줌)

2. 반복적인 CRUD 작업 생략

- JAVA와 DB간 통신에서 세션 오픈, Connection 후 쿼리 전송, json에서 Object로 변환 등의 일련의 작업을 JPA의 함수로 해결

3. 영속성 컨텍스트

- 영속성 컨텍스트 : 엔티티를 영구 저장하는 환경

※ context(컨텍스트) : 대상에 대한 모든 것

- Java와 DB의 중간에서 엔티티 매니저를 통해 엔티티를 조회하거나 저장할 때 보관하고 관리해주는 역할

4. OOP 관점에서 모델링

- JAVA에서 저장해야할 데이터 타입이 Class인 경우 해당 객체 Class에 대한 테이블에도 모델링 해줌

 

 

 

 

엔티티 생명주기

비영속 영속성 컨텍스트와 관계가 없는 새로운 상태
ex) 엔티티 생성
영속 엔티티 매니저를 통해 엔티티가 영속성 컨텍스트에 저장되어 관리되고 있는 상태
ex) 엔티티 매니저를 통해 영속성 컨텍스트에 엔티티 저장
준영속 영속성 컨텍스트에서 관리되다가 분리된 상태
삭제 영속성 컨텍스트에서 삭제된 상태

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[참조]

https://gmlwjd9405.github.io/2019/02/01/orm.html

https://velog.io/@neptunes032/JPA-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%9E%80

 

 

 

 

 

'언어 > Java Spring' 카테고리의 다른 글

[Spring] Spring Security  (0) 2022.05.02
[Spring] Gradle vs Maven  (0) 2022.03.28
Comments