JPA/JPA 기본

31. 기본값 타입

sdafdq 2023. 10. 29. 16:38

JPA의 데이터 타입 분류

 

엔티티

기본 타입

 

이렇게 최상위에서는 2가지 있고,

 

엔티티타입은 내가 엔티티의 뭔가를 변경해도 추적이 가능하다. 엔티티는 객체니 주소로 추적이 가능.

값타입은 그냥 값 타입이다. 값이 100에서 200으로 바뀌면 그냥 완전히 새로 바뀌는 거지 추적 불가.

 

그냥 객체로 콜바이 레퍼런스 콜 바이 벨류 그런 시선으로 보면 될 듯 하다.

 

값타입을 약간 더 세세하게 분류해 보자면

기본값타입

- 기본타입 (int, double 등)

- 래퍼 클래스(Integer, Long 등)

- String

 

임베디드 타입

- 복합값 타입, 그러니까 클래스 같은것들.

 

컬렉션 타입

- 리스트 등

 

이렇게 3가지이고,

기본값 타입은 생명주기를 엔티티에 의존하고(엔티티 삭제하면 얘가 가지고 있던 기본값타입 다 날아감.),

값타입은 공유하면 안된다.(예를 들어 회원A의 이름을 바꿨는데 회원J의 이름도 같이 바뀌었다 등.)

뭐 근데 int, double 같은 기본타입은 공유되지 않는다. 얘는 주소를 주는 게 아니라 콜 바이 밸류니까.

Integer같은 래퍼클래스나 String 같은 특수한 클래스는 공유가 가능한 객체이지만(주소), 변경 자체를 불가능하게 만들었다.

 

이거는 그러니까, JPA에서, 자바의 JPA에서 바라보는 관저들임.

 

 

 

 

 

'JPA > JPA 기본' 카테고리의 다른 글

33. 값타입과 불변 객체  (0) 2023.10.29
32. 임베디드 타입  (0) 2023.10.29
30. 실전 연관관계 관리  (0) 2023.10.29
29. 영속성 전이와 고아 객체  (0) 2023.10.28
28. 즉시로딩, 지연로딩  (0) 2023.10.28