JPA (Java Persistence API)
Java Persistence API (JPA)는 자바 애플리케이션에서 관계형 데이터베이스를 쉽게 다룰 수 있도록 지원하는 표준 ORM (Object-Relational Mapping) 기술입니다. JPA는 Java EE (현재는 Jakarta EE)의 일부로, 데이터베이스와 객체 간 매핑을 통해 SQL 작성을 최소화하면서 데이터를 처리할 수 있도록 합니다.
JPA
JPA란 무엇인가?
JPA는 구현체가 아니라 인터페이스와 명세이며, 이를 구현한 대표적인 구현체로는 Hibernate가 있습니다.
JPA의 주요 특징
- 객체와 관계형 데이터베이스 간의 매핑 제공
- 객체를 테이블에 매핑하며, 객체 지향적인 방식으로 데이터를 관리합니다.
- JPQL (Java Persistence Query Language) 지원
- 객체를 대상으로 하는 쿼리 언어를 제공하여, SQL에 의존하지 않고 데이터를 조회할 수 있습니다.
- 영속성 컨텍스트
- 엔티티를 캐싱하고 동일 트랜잭션 내에서 동일 객체를 반환하여 성능과 일관성을 제공합니다.
JPA 코드 예제
간단한 예제를 통해 JPA의 사용 방법을 살펴보겠습니다.
1. 엔티티 클래스 정의
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import jakarta.persistence.*;
@Entity *// JPA에서 관리할 엔티티임을 표시*
@Table(name = "users") *// 테이블 이름 매핑*
public class User {
@Id *// 기본 키 매핑*
@GeneratedValue(strategy = GenerationType.IDENTITY) *// 자동 증가 설정*
private Long id;
@Column(nullable = false) *// NOT NULL 제약 조건*
private String name;
private String email;
*// Getter, Setter, Constructor*
public User() {}
public User(String name, String email) {
this.name = name;
this.email = email;
}
*// Getters and setters omitted for brevity*
}
2. 데이터베이스 연동 및 데이터 저장
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import jakarta.persistence.*;
public class Main {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("example-unit"); *// persistence.xml에서 설정*
EntityManager em = emf.createEntityManager();
em.getTransaction().begin(); *// 트랜잭션 시작*
User user = new User("Alice", "alice@example.com");
em.persist(user); *// 데이터를 저장 (INSERT)*
em.getTransaction().commit(); *// 트랜잭션 커밋*
em.close();
emf.close();
}
}
JPA의 공식 문서는 Jakarta EE의 일부로 관리됩니다. Jakarta Persistence 공식 문서 (JPA 3.1)
This post is licensed under CC BY 4.0 by the author.