Back-end
[Spring Boot] JPA
jhkang-dev
2018. 10. 20. 21:55
안녕하세요 강정호입니다. 오늘은 JPA에 대해 공부 해볼게요.
JPA를 사용하는 이유?
- SQL 중심적인 개발에서 객체 중심으로 개발
- 생산성과 유지보수성
- 패러다임의 불일치 해결
- 객체 지향성과 SQL의 불일치.
- 성능 : 이것은 확실하지 않다. 1차 캐시와 관련된 것이다.
- 데이터 접근 추상화와 벤더 독립성
- JPA를 사용하게 되면 SQL이 자동으로 각 DBMS(MySQL, Oracle)에 맞게 생성되어 독립적으로 된다.
영속성 컨텍스트(Persistence Context)
- Entity를 영구 저장하는 환경
- 논리적인 개념에 가깝다. 영속성 컨텍스트는 엔티티 매니저를 생성할 때 하나 만들어진다. 그리고 엔티티 매니저는 영속성 컨텍스트에 접근할 수 있고, 영속성 컨텍스트를 관리할 수 있다.
- 엔티티 매니저 : 영속적 환경을 구현하는 클래스
엔티티 생명주기
1. 비영속(new/ transient) : 영속성 컨텍스트와 전혀 관계가 없는 상태
2. 영속(managed) : 영속성 컨텍스트에 저장된 상태
3. 준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태
4. 삭제(removed) : 삭제된 상태