카테고리 없음
자바 ORM 표준 JPA 프로그래밍 실전예제 6 - 값 타입 매핑
정현3
2022. 5. 31. 11:39
@Embeddable
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();
}
public String getCity() {
return city;
}
private void setCity(String city) {
this.city = city;
}
public String getStreet() {
return street;
}
private void setStreet(String street) {
this.street = street;
}
public String getZipcode() {
return zipcode;
}
private void setZipcode(String zipcode) {
this.zipcode = zipcode;
}
@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());
}
}
@Entity
public class Member extends BaseEntity{
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name= "MEMBER_ID")
private Long id;
private String name;
@Embedded
private Address address;
@OneToMany(mappedBy = "member") //양방향 연관관계에서 주인은 외래키를 가지고 있는 Order의 Member이다
private List<Order> orders = new ArrayList<>(); //양방향 연관관계 설정
@Entity
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;