티스토리 뷰

Back-end/Spring Boot

[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) : 삭제된 상태



영속성에 대한 좋은 링크




댓글