Object Realational Mapping
객체와 RDB의 테이블 자동으로 매핑하는 방법
쿼리문 작성이 아닌 코드로 데이터를 조작할 수 있다.
- 애플리케이션 클래스와 DB 테이블 수가 다를 수 있다.(클래스가 더 많아짐)
- RDBMS에는상속이 없음
- RDBMS는 기본 키로 동일성을 정의하지만 자바는 두 객체의 값이 같아도 다르다고 판단할 수 있음
- 연관성을 나타낼 때 자바는 객체 참조(방향성) RDBMS는 외래키 삽입(양방향성)
- 객체(값)에 접근하는 방식이 다름
Java Persistence API
Java 진영 ORM 기술 표준 인터페이스
ORM 개념을 구체화시킨 스펙을 포함하며 어떻게 동작하는 지 메커니즘을 정리한 것
자바 ORM 프레임워크
JPA 편리하게 사용할 수 있도록 지원하는 스프링 하위 프로젝트
엔티티와 레코드의 괴리를 해소하는 기능, 객체를 보관하는 기능을 수행한다.
영속성 컨텍스트에 들어온 엔티티나 레코드를 뜻하는 말로 JPA의 관리 대상이 된 객체
세션 단위의 생명주기를 가진다.
DB에 접근해 CRUD 작업을 수행하는 등 엔티티를 관리하는 객체 Spring Data JPA에서는 리포지토리를 사용해 DB에 접근
DB에 대응하는 객체로 persistence.xml 파일을 구성하고 사용하는 개체 Spring Data JPA에서는 application.properties에 작성한 설정으로 간단하게 사용 가능
영속성 컨텍스트에 추가되지 않은 엔티티 객체 상태
영속성 컨텍스트에 의해 관리되는 엔티티 객체 상태
영속성 컨텍스트에 의해 관리되던 엔티티 객체가 컨텍스트와 분리된 상태
DB에서 레코드를 삭제하기 위해 영속성 컨텍스트에 삭제 요청을 한 상태