250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Spring Boot
- error
- Python
- myBatis
- 오픈소스
- JavaScript
- IntelliJ
- MSSQL
- oracle
- SpringBoot
- 설정
- git
- 문서
- Eclipse
- STS
- JDBC
- AJAX
- Thymeleaf
- spring
- Exception
- jpa
- Open Source
- Core Java
- Docker
- MySQL
- Tomcat
- maven
- Source
- PostgreSQL
- ubuntu
Archives
- Today
- Total
헤르메스 LIFE
[SpringBoot] JPA Entity 생성 테스트 본문
728x90
우아한 형제들 김영한 팀장님 강의를 듣고 테스트 중입니다.
Member.java
@Id
@GeneratedValue
@Column( name = "member_id" )
private Long id;
@JsonIgnore
@OneToMany( mappedBy = "member" )
private List<Order> orders = new ArrayList<>();
Order.java
@ManyToOne( fetch = FetchType.LAZY )
@JoinColumn( name = "member_id" )
private Member member;
//==연관관계 메서드==//
public void setMember( Member member ) {
this.member = member;
member.getOrders().add( this );
}
1:N 의 관계입니다.
Member.java | Order.java | 비고 |
@OneToMany | @ManyToOne | 1. 1:N의 관계에서 '1' 인 Member는 List<Order>객체를 생성했고, 'N'인 Order는 Member 객체를 선언만 했음. 2. @JoinColumn에서 선언된 "member_id" 가 관계를 맺고 있음. 3. mappedBy 는 Member.java 에만 존재함. 4. Order.java 는 연관관계 메서드를 갖는다. - Member 에서 List객체를 생성해서 객체를 가지고 있으므로, Member는 여러개의 주문을 갖을 수 있다. |
@JsonIgnore | 1. Member 과 Order 의 관계에서 Order는 있어도, 없어도 되는 관계를 나타 내는 것 같음. | |
@JoinColumn | 1. Order.java 에는 @JoinColumn 이 선언되었음. |
Order와 Delivery의 관계는 1:1 입니다.
Order.java | Delivery.java | 비고 |
@OneToOne | @OneToOne | 1. mappedBy 는 Delivery.java 에만 존재함. 2. Order.java 는 연관관계 메서드를 갖는다. - Delivery.java 에서 Order 객체를 선언했으므로, 한 개의 주문은 한개의 배송정보를 갖는다. |
@JoinColumn | 1. Order.java 에는 @JoinColumn 이 선언되었음. |
Order.java
@OneToOne( fetch = FetchType.LAZY )
@JoinColumn(name = "delivery_id")
private Delivery delivery;
//==연관관계 메서드==//
public void setDelivery(Delivery delivery) {
this.delivery = delivery;
delivery.setOrder(this);
}
Delivery.java
@OneToOne( mappedBy = "delivery", fetch = FetchType.LAZY )
private Order order;
Order와 OrderItem 의 관계는 1:N 입니다.
Order.java
@OneToMany( mappedBy = "order" )
private List<OrderItem> orderItems = new ArrayList<>();
//==연관관계 메서드==//
public void addOrderItem(OrderItem orderItem) {
orderItems.add(orderItem);
orderItem.setOrder(this);
}
OrderItem.java
@JsonIgnore
@ManyToOne( fetch = FetchType.LAZY )
@JoinColumn( name = "order_id" )
private Order order;
Order.java | OrderItem.java | 비고 |
@OneToMany | @ManyToOne | 1. 1:N의 관계에서 '1' 인 Order는 List객체를 생성했고, 'N'인 OrderItem는 Order 객체를 선언만 했음. 2. @JoinColumn에서 선언된 "order_id" 가 관계를 맺고 있음. 3. mappedBy 는 Order.java 에만 존재함. 4. Order.java 는 연관관계 메서드를 갖는다. - Order 에서 List객체를 생성해서 객체를 가지고 있으므로, Order는 여러개의 주문물품을 갖을 수 있다. |
@JoinColumn | 1. OrderItem.java 에는 @JoinColumn 이 선언되었음. | |
@JsonIgnore | 1. Order 와 OrderItem 의 관계에서 Order는 있어도, 없어도 되는 관계를 나타 내는 것 같음. |
728x90
'Spring Boot Framework' 카테고리의 다른 글
[Spring Boot] HikariCP를 이용한 Database Connection + JPA (0) | 2022.02.11 |
---|---|
[Spring Boot] STS 를 이용한 Spring Boot 개발환경 테스트 (0) | 2022.02.10 |
[SpringBoot] Logback 설정 (2) | 2021.07.30 |
[SpringBoot] Interceptor (0) | 2021.07.28 |
[SpringBoot] SpringBoot 기반 Web Project 생성 (1) | 2021.07.27 |