JPA/값 타입
값 타입
CodeMania
2021. 8. 28. 17:41
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)
뭐 이번 글에서는 그렇게 대단한 내용을 알아보지는 않았다.
이후 값 타입 중 생소할 수 있는 임베디드 타입이란 무엇인지 알아보고,
값 타입을 사용할 때 어떤 주의점이 있는지 알아보도록 하겠다.