실습 예제
예제
책에 나와있는(p196) ERD, UML을 기반으로 엔티티를 만들어보았다.
배운점
지금 작성하고 있는 엔티티에 다른 엔티티가 다수로 들어오면 OneToMany(mappedBy=””)에 객체 적어주자
지금 작성하고 있는 엔티티를 다른 엔티티에서 사용하면 ManyToOne + ManyToOne사용할 때는 JoinColumn(name=””)에 외래키를 작성하자
결과적으로 지금 작성하고 있는 엔티티가 일이냐 다수냐를 파악하자!
@Id를 사용할 때 진짜 객체에서는 id로 사용하기 때문에 @Column을 사용해서 엔티티에 맞는 id를 작성해두자
Member
package ch05;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
@Entity
public class Member {
@Id
@GeneratedValue
@Column(name = "MEMBER_ID")
private int id;
private String name;
private String city;
private String street;
private String zipCode;
@OneToMany(mappedBy = "member")
private List<Order> orders = new ArrayList<>();
}
Order
package ch05;
import javax.persistence.*;
import java.time.LocalDate;
import java.util.LinkedList;
import java.util.List;
@Entity
public class Order {
@Id
@GeneratedValue
@Column(name = "ORDER_ID")
private Long id;
@ManyToOne
@JoinColumn(name = "MEMBER_ID")
private Member member;
@OneToMany(mappedBy = "order")
private List<OrderItem> orderItemList = new LinkedList<>();
private LocalDate orderDate;
@Enumerated(EnumType.STRING)
private OrderStatus status;
enum OrderStatus{
DONE, DELIVERY, READY
}
}
OrderItem
package ch05;
import javax.persistence.*;
@Entity
public class OrderItem {
@Id
@GeneratedValue
@Column(name = "ORDER_ITEM_ID")
private Long id;
@ManyToOne
@JoinColumn(name = "ORDER_ID")
private Order order;
@ManyToOne
@JoinColumn(name = "ITEM_ID")
private OrderItem orderItem;
private Long orderPrice;
private Long count;
}
Item
package ch05;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Item {
@Id
@GeneratedValue
@Column(name = "ITEM_ID")
private Long id;
private String name;
private Long price;
private String stockQuantity;
}
Last updated
Was this helpful?