Spring Data JPA(Java Persistence API)

JPA = Java Persistence API


Persistence란?

자바에서 객체를 데이터베이스에 저장하고 관리하기 위한 인터페이스와 기능을 제공하는 API

JPA는 자바 애플리케이션에서 관계형 데이터베이스를 객체지향적으로 다루기 위한 표준 명세(인터페이스)이다.

실제 구현체는 Hibernate, EclipseLink 등이 있으며, 대부분은 Hibernate를 사용

Hibernate

핵심 개념

1. ORM (Object-Relational Mapping)

자바 객체(Entity)와 DB 테이블을 자동으로 매핑해줍니다.

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "user_name")
    private String name;
}

User 클래스가 users 테이블과 매핑됩니다.


2. EntityManager

JPA의 핵심 인터페이스로, 엔티티의 CRUD를 담당합니다.

EntityManager em = emf.createEntityManager();

em.persist(user);           // INSERT
User found = em.find(User.class, 1L);  // SELECT
em.remove(found);           // DELETE

3. 영속성 컨텍스트 (Persistence Context)