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 |