상세 컨텐츠

본문 제목

[SpringBoot] JPA (Java Persistence API)란?

Backend

by choiDev 2023. 12. 21. 00:48

본문

JPA란?

  • Java 진영에서 ORM(Object-Relational Mapping)기술 표준으로 사용하는 인터페이스 모음
  • JPA는 인터페이스이기에 Hibernate, OpenJPA 같은 구현체가 따로 있고 구현체의 예시로는 아래와 같습니다
    • Hibernate: JPA를 구현한 가장 대표적인 프레임 워크이며 Hibernate는 초기부터 JPA를 지원하고, 강력한 기능과 넓은 커뮤니티를 가지고 있어 많은 개발자들이 선호하는 ORM 프레임워크입니다. 물론 최근에는 NoSql쪽도 지원을 넓히고 있습니다.
    • EclipseLink : JPA의 창시자중 하나인 Oracle에서 만든 오픈소스 ORM 프레임 워크이며, EclipseLink는 고성능과 다양한 기능을 제공합니다.
    • DataNucleus: JPA를 지원하는 오픈소스 ORM 프레임워크로, RDBMS뿐만 아니라 NoSQL 데이터베이스와의 연동도 지원합니다 JPA외에도 JDO(Java Data Objects)도 지원하고있습니다.
    • OpenJPA: Apache 재단에서 개발된 프레임워크로 IBM에서 기부한 코드를 기반으로 구성되어있고, 대규모 기업 애플리케이션에서 사용할 수 있는 기능을 제공합니다.
  • Annotation 기반 설정으로 객체를 Entity로 만들거나 클래스 변수등을 컬럼으로 지정할수있습니다 
  • JPA는 객체간의 관계를 매핑가능하며 일대 다 다대다 같은 다양한 관계를 매핑할수있습니다

 

JPA 구성도

 

 

관련글 더보기