JPA란?
Java Persistence API의 약어로 자바의 ORM을 위한 표준 기술이다.
대표적인 구현체로는 Hibernate, Spring Data Jpa등의 구현체가 존재하며 구현체들의 표준 인터페이스가 JPA이다.

ORM이란?
Object-Relational Mapping으로 자바의 객체와 관계형 데이터베이스를 매핑하는 기술을 뜻한다.
데이터베이스의 테이블과 자바의 객체를 서로 매핑하여 SQL문을 작성하지 않고 객체로 구현할 수 있는 프레임워크다.
JPA의 장점
- 쿼리를 하나하나 작성할 필요가 없어코드량이 기존 Mybatis와 JDBC 템플릿 프로젝트에 비해서 상당히 줄어든다.
- 객체 위주의 코드로 가독성이 좋다.
- 기능 수정이 발생해도 간단히 조정이 가능하다.
- 자바 개발자가 DB에 종속되는 기존 프로젝트에 비해 DB 독립적으로 작성이 가능하다.
- 부모 클래스와 자식 클래스의 개념과 같은 객체지향적 관계를 데이터베이스에서 구현이 가능하다.
JPA의 단점
- 세밀한 설정을 하지 않는 이상 Latency에 대한 문제점이 존재한다.
- 동적쿼리나 다중쿼리와 같은 복잡한 쿼리는 결국 SQL문을 통해 작성해야한다.
JPA 코드 구현

@Entity
객체를 영속화하는 어노테이션으로 객체를 테이블로 매핑해준다.
@Id
데이터베이스의 primary key 역할을 하는 칼럼으로 자동적으로 id값을 increment시켜 고유한 값을 부여한다.
@Column
테이블의 칼럼으로 매핑해주는 어노테이션으로 char 제한, nullable 유무 등을 설정할 수 있다.
연관관계

상속관계에 대한 접근으로 객체지향에서 연관관계를 부여할 수 있다.
Class에서 또 다른 Class Type을 필드 변수로 가지고 있는 것으로
객체 관계를 통해 테이블 간의 외래키 설정이 가능하다.
'스프링' 카테고리의 다른 글
Spring Security (0) | 2023.03.17 |
---|