본문 바로가기
스프링

JPA

by 달리는 꿈나무 2023. 3. 17.

JPA란?

Java Persistence API의 약어로 자바의 ORM을 위한 표준 기술이다.

대표적인 구현체로는 Hibernate, Spring Data Jpa등의 구현체가 존재하며 구현체들의 표준 인터페이스가 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