본문 바로가기

JPA/값 타입

값 타입

JPA 데이터 타입의 분류

JPA에는 크게 엔티티 타입과 값 타입이라는 두 개의 타입이 존재한다.
무엇인지 알아보자!


1. 엔티티타입

@Entity로 정의하는 클래스는 엔티티 타입으로

 

데이터가 변해도 식별자(Primary Key)를 통해서 추적이 가능하다.
ex) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능

2. 값 타입

int, String, long처럼 단순히 값으로 사용하는 자바 기본 타입(primitive type)이나 클래스를 말한다.

 

식별자가 없고 값만 있으므로 변경 시 추적이 불가능하다.
ex) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체


값 타입의 생명 주기는 엔티티에 의존적이다.
ex) 회원 엔티티를 제거하면 키와 나이 필드도 제거된다.

 

값 타입의 분류

 

  • 기본값 타입
    • 자바 기본(primitive) 타입(int, double)
    • 래퍼 클래스(Integer, Long)
    • String
  • 임베디드 타입(복합 값 타입)
  • 컬렉션 값 타입(collection value type)

 

뭐 이번 글에서는 그렇게 대단한 내용을 알아보지는 않았다.
이후 값 타입 중 생소할 수 있는 임베디드 타입이란 무엇인지 알아보고,
값 타입을 사용할 때 어떤 주의점이 있는지 알아보도록 하겠다.

 

참고강의: 배달의 민족 개발팀장 김영한 강사님의 JPA 강의

'JPA > 값 타입' 카테고리의 다른 글

값 타입 컬렉션을 엔티티로 승격시키기  (0) 2021.09.06
값 타입 컬렉션  (0) 2021.09.04
값 타입의 비교  (0) 2021.08.31
임베디드 타입과 불변 객체  (0) 2021.08.28
임베디드 타입  (0) 2021.08.28