"인프런 - 자바 ORM 표준 JPA 프로그래밍 강의를 듣고 작성한 글 입니다."
www.inflearn.com/course/ORM-JPA-Basic#
자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런
JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다. 초급 웹 개발 프로그
www.inflearn.com
글을 작성하는 순서가 좀 뒤바뀌긴 했지만 우선 앞전에 작성했던 연관관계 매핑 기초 관련 글에서 배운 내용을 토대로 위의 테이블과 같은 연관관계를 매핑해보자.
위의 테이블을 보면 각 도메인 클래스간의 연관관계는 아래와 같다.
1. Member - Order : 다대일 양방향 매핑
2. Order - OrderItem : 다대일 양방향 매핑
3. OrderItem - Item : 다대일 단방향 매핑
위의 매핑 정보를 토대로 코드를 작성해보자.
1. Member - Order : 다대일 양방향 매핑
- Member.java
@OnetoMany(mappedBy = "member")
private List<Order> orders = new ArrayList<>();
- Order.java
@ManyToOne
@JoinColumn(name = "MEMBER_ID")
private Member member;
2. Order - OrderItem : 다대일 양방향 매핑
: Order - OrderItem 연관관계 에서는 양방향 매핑이 비즈니스 적으로 상당히 가치 있다고 볼 수 있다.
하나의 주문에서 몇 가지 상품이 주문 되었는지 내역을 찾을 경우가 많기도 하기 때문이다.
- Order.java
@OneToMany(mappedBy = "order")
private List<OrderItem> orderItems = new ArrayList<>();
- OrderItem.java
@Entity
public class OrderItem {
@Id @GeneratedValue
@Column(name = "ORDER_ITEM_ID")
private Long id;
@ManyToOne
@JoinColumn(name = "ORDER_ID")
private Order order;
private int orderPrice;
private int count;
}
3. OrderItem - Item : 다대일 단방향 매핑
- OrderItem.java
@ManyToOne
@JoinColumn(name = "ITEM_ID")
private Item item;
- Item.java : 단방향 매핑이기 때문에 따로 연관관계 매핑 어노테이션을 사용하지 않는다.
@Entity
public class Item {
@Id @GeneratedValue
@Column(name = "ITEM_ID")
private Long id;
private String name;
private int price;
private int stockQuantity;
}
위와 같이 간단한 연관관계 매핑 작업을 완료할 수 있다
다음 글에서는 일대일, 다대다 같은 좀 더 다양한 연관관계를 예제로 매핑해보자.
'JPA' 카테고리의 다른 글
상속관계 매핑 - 1 (0) | 2020.10.10 |
---|---|
실전 예제 3 - 다양한 연관관계 매핑 (0) | 2020.10.06 |
다양한 연관관계 매핑 - 3 (0) | 2020.10.05 |
다양한 연관관계 매핑 - 2 (0) | 2020.10.04 |
다양한 연관관계 매핑 - 1 (0) | 2020.10.03 |