값 타입

JPA에서 제공해주고 있는 데이터 타입은 크게

엔티티 타입, 값 타입으로 나눌 수 있다.

엔티티

는 @Entity로 정의하는 객체이고

엔티티 타입은 식별자를 통해서 지속적으로 추적하는 것이 가능

특징으로는

  • 식별자가 있다 → 식별자로 구분, 추적이 가능

  • 생명주기가 있음 → em.persist로 영속화, em.remove로 제거

  • 공유할 수 있음 → 참조 값을 공유할 수 있음

은 int, Integer, String 처럼 단순하게 값으로 이용하는 자바의 기본 타입이나 객체를 의미

값 타입은 단순한 수치 정보이다.

  • 기본값 타입 - basic value type

    • 자바 기본 타입(int, double)

    • 래퍼 클래스(Integer)

    • String

  • 임베디드 타입(복합 값 타입)

  • 컬렉션 값 타입

특징

  • 식별자가 없고

  • 생명주기가 엔티티에 의존되어 있다.

  • 공유하지 않는 것이 안전하다

    • 공유하지 않고 복사해서 사용하라

    • 오직 하나의 주인이 관리하자

    • 불변객체로 만드는 것이 좋다

임베디드 타입

값 타입과 불변 객체

값 타입의 비교, 컬렉션

Last updated

Was this helpful?