JPA는 자바 진영의 ORM(Object-Relational Mapping) 기술 표준입니다. 객체와 관계형 데이터베이스 간의 매핑을 처리하는 인터페이스 모음
데이터베이스 스키마 정보가 자바 클래스에 어노테이션 형태로 포함되어 있기 때문입니다.
// JPA 엔티티 예제
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// 생성자, getter, setter 등
}
<aside> 📌
높은 학습곡선 JPA 관련 다양한 스펙과 작성법(@Entitity, @Table, @Column, @Id, @OneToMany, @ManyToOn)을 학습해야 하고, 또 JPA 적용으로 생기는 다양한 이슈, 즉시 로딩(EAGER LOADING), 지연 로딩(LASY LOADING), 영속성 전이(CascadeType), 복합키 매핑(@EmbededId, @IdClass) 등에 대한 해결 방법을 익혀야 합니다. MyBatis에 비해 배우기가 어렵습니다.
</aside>
Hibernate는 JPA의 구현체 중 하나로, 가장 널리 사용되는 ORM 프레임워크입니다. 다음과 같은 특징을 가집니다: