반응형
@Embeddable & @Embedded
Spring JPA 에서 제공하는 기능으로, 다양한 값 타입(value type)으로 구성된 엔티티(Entity) 클래스를 더 나은 추상화 및 재사용성을 위해 사용됩니다.
User
@Entity
public class User {
@Id @GeneratedValue
private Long id;
private String firstName;
private String middleName;
private String LastName;
private String city;
private String street;
private String zipcode;
}
테이블의 구조는 괜찮지만 Name과 Address를 재사용하고 여러 엔티티에 사용하기에는 부적절합니다.
Name과 Address 클래스를 만들고 @Embeddable을 사용하여 클래스가 다른 엔티티에 포함되어야 함을 선언합니다.
Name
@Embeddable
public class Name {
private String firstName;
private String middleName;
private String LastName;
}
Address
@Embeddable
public class Address {
private String city;
private String street;
private String zipcode;
}
이제 User 모델을 설게할때 Name과 Address 타입을 포함하여 생성합니다.
User
@Entity
public class User {
@Id @GeneratedValue
private Long id;
@Embedded
private Name name;
@Embedded
private Address address;
}
반응형
'웹, 앱 개발 > Spring' 카테고리의 다른 글
@SpringQueryMap란? & 사용 예시 (0) | 2023.03.30 |
---|---|
@SuperBuilder란? & 사용 예시 (1) | 2023.03.28 |
[SpringBoot] sourceCompatibility & targetCompatibility (0) | 2022.07.19 |
[SpringBoot] Query Parameter Log (쿼리 파라미터 로그) 남기기 (0) | 2022.05.19 |
[Spring Boot] Junit5 - @RunWith(SpringRunner.class) (0) | 2022.05.13 |