티스토리 뷰
반응형
오늘은 @Embedded는
무엇이며 언제 어떻게 사용하는지에 대해 알아보자.
바로 시작해보자. 🔥
회원 엔티티가 다음과 같다고 가정해보자.
회원 엔티티는 이름, 도시, 주소 번지, 주소 우편번호를 가진다.
이때 도시, 주소 번지, 주소 우편번호는
회원의 '주소'를 알기 위해 가지는 컬럼들이다.
이때 상세 데이터(도시, 주소 번지, 주소 우편번호) 또한
하나의 객체로 묶어
보다 객체지향적으로 설계할 수 있다.
도시, 주소 번지, 주소 우편번호를
주소라는 객체로 묶어 표현하면 보다 객체지향적인 코드가 될 것이다.
이때 사용하는 것이 @Embedded, @Embeddable이다.
@Embeddable
@Getter
public class Address {
private String city;
private String street;
private String zipcode;
}
}
주소 임베디드 타입을 생성하기 위해
@Embeddable 어노테이션을
주소 클래스에 생성해주고
@Entity
@Getter @Setter
public class Member {
@Id
@GeneratedValue
@Column(name = "member_id")
private Long id;
private String name;
@Embedded
private Address address;
}
member 객체에서
임베디드 타입으로 된 주소 객체를
@Embedded 어노테이션을 이용해 사용한다.
@Embeddable : 값 타입을 정의하는 곳에 표시
@Embedded : 값 타입을 사용하는 곳에 표시
그리고
임베디드 타입은 기본 생성자가 필수이다!
🤔 임베디드 타입이란?
하이버네이트에서 임베디드 타입을 컴포넌트(components)라고 한다.
🤔 Embedded 타입을 사용하는 이유?
✔ 코드의 재사용
✔ 높은 응집도
잘 설계한 ORM 애플리케이션은 매핑한 테이블의 수봐 클래스의 수가 더 많다
- 인프런 김영한 T
오늘은 @Embedded @Embeddable이 무엇이며
어떻게 사용하는지 알아보았다.
그럼 오늘도 열심히 공부하자. 😊
반응형
'프로그래밍 > JPA' 카테고리의 다른 글
[JPA] 연관관계 매핑 과정(엔티티 클래스 개발) (0) | 2022.06.10 |
---|---|
[JPA] @Enumerated란 무엇이며 어떻게 사용할까? 🤔 (0) | 2022.06.09 |
[JPA] 엔티티 설계시 주의할 점 (0) | 2022.06.06 |
[JPA] 플러시, 준영속 상태 (0) | 2022.03.10 |
[JPA] 영속성 관리 - 내부 동작 방식 (0) | 2022.03.10 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바의 정석
- Java
- queue
- 정보처리 산업기사
- 해커랭크 자바
- 정보처리산업기사
- LinkedList
- 해커랭크 자바 챌린지
- JPA
- 강의
- 개발자
- 풀이
- 해커랭크
- 코드
- 22 정보처리 산업기사
- 챌린지
- 백준
- 해커랭크 챌린지
- ORM
- 22 정보처리산업기사
- 소스코드
- BAEKJOON
- stack
- hackerrank challenges
- 자바
- 디버깅
- 그리디
- 정보처리산업기사 공부법
- challenges
- hackerrank
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함