JPA 기초 용어 정리

이동영·2024년 3월 18일

JPA

목록 보기
4/8

JPA : JAVA Persistent API약자로 자바 표준 ORM 기술이며, 자바 애플리케이션과 JDBC 사이에서 동작하며 인터페이스로 정의한다.
인터페이스 이기에 구현체를 사용해야하는데 대표적으로 하이버네이트가 있다.

ORM : Object rerational Mapping의 약자로 자바객체와 데이터베이스를 매핑해주는 기술로 객체는 객체대로 설계 테이블은 테이블대로 분리설계가 가능하며 이는 패러다임 불일치 문제를 해결해준다.

엔티티 : 자바 객체이지만 데이터베이스 테이블과 직접 연결되는 객체이다.
엔티티 매니저 팩토리 : 엔티티 매니저 인스턴스를 관리하는 주체로 애플리케이션 실행시 한개만 생성되며 사용자 요청이 오면 요청별 엔티티 매니저를 생성한다.
엔티티 매니저 : 엔티티를 관리하여 데이터베이스와 애플리케이션 사이에서 CRUD를 담당한다.

find() : 데이터가 영속성 컨텍스트에 있으면 그것을 사용하고 없을 경우 디비에서 찾아와 영속성 컨텍스트에 저장후 관리
persist() : 엔티티를 영속성 컨텍스트에 저장한다.
remove() : 엔티티를 영속성 컨텍스트에서 삭제
flush() : 영속성 컨텍스트에 저장된 내용을 디비에 반영

영속성 컨텍스트 : 엔티티를 영구적으로 저장하는 환경으로 엔티티 매니저를 통해 영속성 컨텍스트에 접근할 수 있으며 애플리케이션과 데이터베이스 사이 중간계층에 존재하며 1차캐시와 쓰기지연 저장소를 이용할 수 있다.

영속성 컨텍스트의 장점 : 1차 캐시, 동일성 보장, 트랜잭션을 지원하는 쓰기, 변경감지, 지연로딩

비영속(new) : new키워드를 통하여 생성된 상태로 영속성 컨텍스트와 관련이 없는 상태이다.
영속(managed) : 엔티티가 영속성 컨텍스트에 저장된 상태로 영속성 컨텍스트에 의해 관리되는 상태
준영속 상태(detached) : 영속성 컨텍스트에 엔티티가 저장되었다가 분리된 상태
삭제 상태(removed) : 영속성 컨텍스트와 데이터베이스에서 삭제된 상태

1차캐시 : 영속성 컨텍스트 내부 엔티티를 보관하는 저장소이며 Map형태이다.
동일성 보장 : 같은 값을 가진 엔티티라면 동일한 객체로 참조된다는것을 보장해주는것
쓰기지연 : SQL문을 저장하는곳이며 커밋시점에 퀴리문을 db로 flush한다.
변경텍스트감지 : 트랜잭션 커밋시 영속화된 Entity에서 가지고 있던 최초정보와 바뀐 Entity정보를 비교해 바뀐 부분을 update해주는 기능

패러다임 불일치 : 객체와 관계형 데이터베이스가 서로 지향하는 목적이 달라 기능과 표현 방법의 차이가 발생하는 문제

profile
가치를 제공하는 개발자

0개의 댓글