[JPA] 엔티티 타입과 값 타입

조성우·2024년 4월 25일

JPA - 공부

목록 보기
12/16
post-thumbnail

엔티티 타입의 특징

  • 식별자가 있음
  • 생명 주기가 관리됨
  • 공유할 수 있음

값 타입의 특징

  • 식별자가 없음
  • 생명 주기를 엔티티에 의존
  • 공유하지 않는 것이 안전 (복사해서 사용)
  • 임베디드 타입과 같은 값 타입은 여러 객체에서 공유될 수 있으므로 불변 객체로 만드는 것이 안전함 (생성자로만 값을 설정하고 setter를 만들지 말아야 함)

  • 값 타입은 정말 값 타입이라 판단될 때만 사용 (실무에서는 값 타입이 드물게 사용됨)
  • 엔티티와 값 타입을 혼동해서 엔티티를 값 타입으로 만들면 안됨
  • 식별자가 필요하고, 지속해서 값을 추적/변경해야 한다면 그것은 값 타입이 아닌 엔티티로 구현

0개의 댓글