설계를 실제 코딩하자.

실무에서는 가급적 Getter는 열어두고 Setter는 꼭 필요한 경우만 사용하는 것을 추천한다.

@Entity
@Getter @Setter
public class Member {

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

	private String name;

	private Address address;

	private List<Order> orders = new ArrayList<>();
}

인텔리j 엔터프라이즈 기능

cmd + ;

@Entity
@Getter @Setter
public class Delivery {

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

	private Order order;

	@Embedded
	private Address address;

	@Enumerated(EnumType.STRING)
	private DeliveryStatus status;
}