[개발] - Spring/개념 정리
JPA에서 임베디드 타입
완벽한 장면
2023. 7. 1. 22:10
값 타입
- 엔티티(Entity)에 속하지 않고, 단순히 엔티티의 속성으로 사용되는 객체
- JPA에서 임베디드(Embedded) 타입도 값 타입의 한 종류
임베디드 타입
- 여러 개의 속성을 하나로 묶어 하나의 객체로 표현할 수 있도록 하는 것
- ex. 주소(Address) 객체를 임베디드 타입으로 사용 많이 함.
- 이러한 경우 주소는 엔티티가 아니라, 엔티티의 속성으로 존재 + 해당 엔티티와 생명주기를 공유한다.
- 임베디드 타입 사용 시 코드의 재사용성과 가독성 향상.
- 복합적 데이터를 간단하게 모델링할 수 있음.
- 필요한 경우 임베디드 타입을 재사용하여 중복을 피할 수 있음.
JPA에서 임베디드 타입 사용하기
- 임베디드 타입으로 사용할 클래스를 정의.
- 해당 클래스에 @Embeddable 어노테이션을 붙여, JPA에게 이 클래스가 임베디드 타입임을 선언
- 임베디드 타입 사용할 엔티티 클래스 필드에 @Embedded 어노테이션을 붙여 임베디드 타입 사용을 명시
예시, User 클래스에서 Address 임베디드 타입 사용하기
@Entity
public class User {
@Id
private Long id;
private String name;
@Embedded
private Address address;
// getters and setters
}
@Embeddable
public class Address {
private String city;
private String street;
private String zipcode;
// getters and setters
}
=> 이렇게 임베디드 타입을 사용하면 User 엔티티의 주소를 편리하게 관리 가능.
728x90
반응형