[자바 ORM 표준 JPA 프로그래밍 - 기본편]
섹션 9.값타입- 기본값 타입 ~ 임베디드 타입
엔티티 타입: @Entity로 정의하는 객체. 데이터가 변해도 식별자로 지속해서 추적 가능.
값 타입: 단순히 값으로 사용하는 자바 기본타입이나 객체. 식별자가 없고 값만 있어 변경시 추적 불가. 종류 - 기본값 타입, 임베디드 타입, 컬렉션 값 타입
기본값 타입
- ex) String name, int age
- 생명주기를 엔티티에 의존.
- 값 타입은 공유하면 x. (참고: 자바에서 int, double과 같은 primitive type은 공유x, 값을 복사. Interger 같은 래퍼 클래스나 String같은 특수 클래스는 공유o, 값 변경x.)
임베디드 타입
- 새로운 값 타입을 직접 정의. (ex. String city, String street -> Address 객체로 묶어서 관리)
- 주로 기본값 타입을 모아서 만들어 복합값 타입이라고도 함.
- 값 타입을 정의하는 곳에 @Embeddable, 값 타입을 사용하는 곳에 @Embedded 표시. 기본 생성자 필수!
- 장점: 재사용, 높은 응집도.
- 임베디드 타입을 사용하기 전과 후에 매핑하는 테이블은 같음.
- 한 엔티티에서 같은 값 타입을 사용하면 컬럼 명이 중복되므로 @AttributeOverrides, @AttributeOverride를 사용해서
컬러 명 속성을 재정의.
'공부일기 > JPA' 카테고리의 다른 글
JPA 공부일기(13) (0) | 2023.03.26 |
---|---|
JPA 공부일기(12) (0) | 2023.03.21 |
JPA 공부일기(10) (0) | 2023.02.09 |
JPA 공부일기(9) (0) | 2023.01.30 |
JPA공부일기(8) (0) | 2023.01.27 |
댓글