[Java] JPA(Java Persistence API)

weonyee·2025년 4월 23일

JPA(Java Persistence API)

자바 객체와 관계형 데이터베이스 간의 매핑을 처리하는 API

  • 자바 객체를 데이터베이스와 연결해주는 표준 규칙
  • 복잡한 SQL 없이, 자바 객체로 데이터베이스 조작 가능
  • 객체 지향 프로그래밍을 할 때 데이터베이스를 직접 다루지 않고, 객체로 처리 가능
  • 자바 개발자들이 persistence 문제를 쉽게 처리할 수 있도록 도와주는 API

Persistence(영속성)

  • 어플리케이션에서 생성한 데이터를 영구적으로 저장하고 유지하는 것
  • 어플리케이션을 다시 실행해도 데이터가 유지되는 이유

Hibernate

  • JPA를 구현한 대표적인 프레임워크
  • 객체와 데이터베이스 간의 매핑 처리하는 데 도움을 줌
  • 데이터베이스와 자바 객체를 매핑하는 데 집중할 필요 X
  • Hibernate API 사용하여 DB에서 정보를 읽고 쓸 수 있음
  • pythonSQLAlchemy와 비슷한 역할을 함

ORM(Object-Relational mapping)

  • 객체(자바 클래스)와 테이블(데이터베이스)를 자동으로 연결해주는 통역사
  • SQL 없이 데이터를 쉽게 저장하고 불러올 수 있음

Spring Data JPA

JPA를 Spring Framework에 적용한 것으로, 데이터베이스와의 상호작용을 쉽게 처리할 수 있는 기술

JPARepository

  • Spring Data JPA에서 제공하는 인터페이스
  • 데이터베이스와 연동하여 CRUD 작업을 수행하는 데에 사용됨

제공 메소드

  • Create
    - save(entity): 새로운 엔티티 저장/기존 엔티티 업데이트
    - saveAll(entities): 여러 개의 엔티티 한 번에 저장
  • Read
    - findById(id): 주어진 ID에 해당하는 엔티티 찾기
    - findAll(): 모든 엔티티 조회
  • Update
    - save(entity): 새로운 엔티티를 저장하거나, 기존 엔티티를 업데이트
    - saveAll(entities): 여러 개의 엔티티를 한 번에 저장
  • Delete
    - delete(entity): 주어진 엔티티 삭제
    - deleteById(id): ID에 해당하는 엔티티 삭제

Annotation

  • @Entity
  • @ID
  • @GeneratedValue
  • @Column

0개의 댓글