【와신상담】

[jpa] 데이터 타입 분류

아딜렛 2025. 2. 5. 17:36

엔티티 타입: @Entity로 정의하는 객체

데이터가 변해도 식별자로 지속해서 추적 가능

 

값타입: int Integer String 처럼 값으로 사용하는 자바 기본 타입, 변경시 추적 불가

값타입 분류

ⓐ기본값타입

ⓑ임베디드 타입: 새로운 값 타입을 직접 정의할수 있음

기본 값 타입을 모아서 만들어진 복합 값타입

@Embeddable: 값 타입을 정의하는 곳에 표시

@Embedded: 값 타입을 사용하는 곳에 표시

ex) member에 들어갈 homeaddress , datetime 같은거 클래스로 따로 빼서 (공통으로 사용할만한것들 인듯)

클래스 본체에다가는 embeddable  사용하고 member 에다가 embedded 사용

클래스에다가 기본 생성자 필수로 만들어야함

 

임베디드 타입의 장점

재사용, 높은 응집도,

 

임베디드 타입과 테이블 맵핑

임베디드 타입은 엔티티의 값에 불과하다.

임베디드 타입을 사용하기 전화 후에 맵핑하는 테이블의 수는 같다.

잘 설계한 orm 애플리케이션은 맵핑한 테이블의 수보다 클래스의 수가 더 많다.

ⓒ컬렉션 값 타입