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 > 값 타입' 카테고리의 다른 글
값 타입 컬렉션을 엔티티로 승격시키기 (0) | 2021.09.06 |
---|---|
값 타입 컬렉션 (0) | 2021.09.04 |
값 타입의 비교 (0) | 2021.08.31 |
임베디드 타입과 불변 객체 (0) | 2021.08.28 |
임베디드 타입 (0) | 2021.08.28 |