[개발] - Spring/개념 정리

JPA에서 임베디드 타입

완벽한 장면 2023. 7. 1. 22:10

값 타입

  • 엔티티(Entity)에 속하지 않고, 단순히 엔티티의 속성으로 사용되는 객체
  • JPA에서 임베디드(Embedded) 타입도 값 타입의 한 종류

 

임베디드 타입

  • 여러 개의 속성을 하나로 묶어 하나의 객체로 표현할 수 있도록 하는 것
  • ex. 주소(Address) 객체를 임베디드 타입으로 사용 많이 함.
  • 이러한 경우 주소는 엔티티가 아니라, 엔티티의 속성으로 존재 + 해당 엔티티와 생명주기를 공유한다.
  • 임베디드 타입 사용 시 코드의 재사용성과 가독성 향상.
  • 복합적 데이터를 간단하게 모델링할 수 있음.
  • 필요한 경우 임베디드 타입을 재사용하여 중복을 피할 수 있음.

 

JPA에서 임베디드 타입 사용하기

  1. 임베디드 타입으로 사용할 클래스를 정의.
  2. 해당 클래스에 @Embeddable 어노테이션을 붙여, JPA에게 이 클래스가 임베디드 타입임을 선언
  3. 임베디드 타입 사용할 엔티티 클래스 필드에 @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
반응형