본문으로 바로가기

실습 6 - 값 타입 매핑

category Spring/Spring JPA 2024. 3. 29. 18:11

 

Address.java

@Embeddable
@Getter
public class Address {

    @Column(length = 10)
    private String city;
    @Column(length = 20)
    private String street;
    @Column(length = 5)
    private String zipcode;

    public String fullAddress(){
        return getCity() + " " +  getStreet()  + " " + getZipcode();
    }
    
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Address address = (Address) o;
        return Objects.equals(getCity(), address.getCity()) && Objects.equals(getStreet(), address.getStreet()) && Objects.equals(getZipcode(), address.getZipcode());
    }

    @Override
    public int hashCode() {
        return Objects.hash(getCity(), getStreet(), getZipcode());
    }
}

 

Member.java

@Entity
@Getter
@Setter
public class Member extends BaseEntity{

    @Id @GeneratedValue
    @Column(name="MEMBER_ID")
    private Long id;
    private String name;

    @Embedded
    private Address address;

    @OneToMany(mappedBy = "member")
    private List<Order> orders = new ArrayList<>();

}

 

Delevery.java

@Entity
@Data
public class Delivery extends BaseEntity{
    @Id @GeneratedValue
    private Long id;

    @Embedded
    private Address address;

    private DeliveryStatus status;

    @OneToOne(mappedBy = "delivery", fetch = FetchType.LAZY)
    private Order order;
}

 

 

 

'Spring > Spring JPA' 카테고리의 다른 글

패치조인(fetch join)  (0) 2024.04.09
객체지향 쿼리 언어 - JPQL  (0) 2024.03.29
값 타입 컬렉션  (0) 2024.03.29
값 타입의 비교  (0) 2024.03.29
값 타입과 불변 객체  (0) 2024.03.22