반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- redis
- docker
- IntelliJ
- codebuild
- PostgreSQL
- SQL
- codepipeline
- node
- Airflow
- chartjs
- Spring
- codedeploy error
- or some instances in your deployment group are experiencing problems.
- COALESCE
- chart.js
- JavaScript
- Spring Error
- Python
- Flux
- codedeploy
- 도커
- bootstrap
- kubeflow
- aws
- Kafka
- java bigdecimal
- AWS CI/CD 구축하기
- VPN
- Jenkins
- aws cicd
Archives
- Today
- Total
Small Asteroid Blog
[JPA] @Embedded, @Embeddable 본문
728x90
임베디드 타입(Embedded type)
JPA에서 새로운 값 타입을 직접 정의해서 사용하는 것을 임베디드 타입이라고 한다.
임베디드 타입도 int, String 처럼 값 타입이다.
임베디드를 사용하지 않았을 때
@Entity
public class User {
@Id
@GeneratedValue
private Integer id;
private String name;
private String phone;
// address
private String city;
private String country;
private String zipcode;
// standard getters, setters
}
User가 상세한 데이터(주소)를 그대로 가지고 있는 것은 객체지향적이지 않으면 응집력만 떨어진다.
임베디드 사용하기
- @Embeddable : 클래스가 다른 엔티티에 의해 포함됨
- @Embedded : 다른 엔티티에 포함하는데 사용
- 임베디드 타입은 기본 생성자 필수
@Entity
public class User {
@Id
@GeneratedValue
private Integer id;
private String name;
private String phone;
@Embedded
private Address address;
// standard getters, setters
}
@Embeddable
public class Address {
private String city;
private String country;
private String zipcode;
// standard getters, setters
}
임베디드의 장점
- 재사용 가능
- 높은 응집도
정리
임베디드 타입 덕분에 객체와 테이블을 세밀하게 매핑하는 것이 가능하다.
잘 설계한 ORM 애플리케이션은 매핑한 테이블의 수보다 클래스의 수가 더 많다.
참고
[Book] 자바 ORM 표준 JPA 프로그래밍
728x90
반응형
'백엔드 > Spring' 카테고리의 다른 글
[JPA] Collection 컬렉션 (Collection, List, Set, List+@OrderColumn) (0) | 2022.09.15 |
---|---|
[JPA] Optional (0) | 2022.09.14 |
[JPA] 최범균님 <JPA 기초> 내용 정리하기 (0) | 2022.09.07 |
[java] BigDecimal 사칙연산(더하기, 빼기, 나누기, 곱하기), 비교(compareTo) (0) | 2022.05.16 |
[java] BigDecimal error : Non-terminating decimal expansion; no exact representable decimal result. (0) | 2022.05.15 |