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 |