정의
Java 애플리케이션에서 관계형 데이터베이스와 상호작용하기 위한 표준 API
JPA를 사용하면 객체 지향 프로그래밍 방식으로 데이터베이스 작업을 수행
개발자는 SQL 쿼리를 직접 작성하는 대신 자바 객체와 데이터베이스 테이블 간의 매핑을 정의하고, 객체를 통해 데이터베이스 작업을 수행
주요 개념과 기능
엔티티(Entity)
- 엔티티는 데이터베이스 테이블에 매핑되는 자바 클래스. 각 엔티티 클래스는 데이터베이스 테이블의 행을 나타냄
엔티티 매핑(Entity Mapping)
- 엔티티 클래스의 각 필드는 데이터베이스 테이블의 열과 매핑. 이를 통해 JPA는 객체를 데이터베이스에 저장하고, 불러오고, 업데이트하고, 삭제하는 작업을 수행
영속성 컨텍스트(Persistence Context)
- 영속성 컨텍스트는 엔티티 인스턴스를 관라하는 환경, 영속성 컨텍스트는 엔티티의 상태를 추적, 데이터베이스와 동기화를 관리
엔티티 매니저(Entity Manger)
- JPA 영속성 컨텍스트를 관리하는 인터페이스
- 주요 메서드
persist()
: 엔티티를 영속성 컨텍스트에 저장find()
: 엔티티를 식별자로 조회remove()
: 엔티티를 삭제merge()
: 분리된 엔티티를 영속성 컨텍스트로 병합
쿼리(Query):
- JPA는 JPQL(Java Persistence Query Language)과 네이티브 SQL 쿼리를 지원. JPQL은 SQL과 유사하지만, 데이터베이스 테이블이 아닌 엔티티를 대상으로 쿼리함.
트랜젝션
- 데이터베이스 작업은 트랜잭션 내에서 실행. JPA는 트랜잭션 관리를 통해 데이터 일관성과 무결성을 보장
Share article