티스토리 뷰

SPRING FRAMEWORK

Spring Data JPA 개념

RRachel 2019. 5. 25. 14:57

JPA(Java Presistence API)는 Java를 이용해서 데이터를 관리하는 기법을 하나의 스펙으로 정리한 표준입니다.

JPA 자체로는 스펙에 불과하기 때문에 이를 실제로 구현한 프레임워크들의 존재가 필수적입니다.

Servlet이라는 기술 스펙을 Tomcat에 구현한 것처럼, JPA를 구현한 구현체 중에서 스프링 부트 프로젝트에서는 Hibernate(http://hibernate.org/)를 이용합니다.

 

엔티티(Entity)는 데이터베이스에서 데이터로 관리하는 대상을 의미합니다. ex) 상품, 회사, 직원

 

데이터베이스에서는 엔티티를 위해 테이블을 설계하고 데이터를 추가합니다. 이렇게 추가된 데이터는 인스턴스 또는 레코드라고 부릅니다.

JPA에서는 Java를 이용해서 엔티티들을 관리하기 때문에 엔티티 타입은 클래스가 되며 하나의 엔티티 타입을 생성한다는 것은 하나의 클래스를 작성한다는 의미가 됩니다.

 

화살표에 있는 메소드는 엔티티 매니저를 통해 실행하는 메소드입니다.

 

New(비영속) : Java 영역에 객체만 존재하고 데이터베이스와 연동된 적이 없는 상태. 엔티티 매니저의 관리하에 있는 것이 아니기 때문에 순수한 Java 객체

 

Managed(영속) : 데이터베이스에 저장되고, 메모리상에서도 같은 상태로 존재하는 상태. 객체는 영속 컨텍스트 내에 들어가게 되고, id(PK)값을 통해서 필요한 엔티티 객체를 꺼내 사용할 수 있게 됩니다.

 

Removed(삭제) : 데이터베이스상에서 삭제된 상태며 객체는 더 이상 영속 컨텍스트에 존재하지 않습니다.

 

Detached(준영속) : 영속 컨텍스트에서 엔티티 객체를 꺼내서 사용하는 상태. 준영속 상태의 객체는 고유한 id(PK)를 가지고 있지만 아직 데이터베이스와 동기화가 이루어지지 않은 상태

 

'SPRING FRAMEWORK' 카테고리의 다른 글

스프링 MVC 구조  (0) 2018.10.18
[Spring] servlet-context.xml, Annotation의 종류  (0) 2018.01.05
댓글
공지사항
최근에 올라온 글
«   2025/02   »
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
글 보관함