묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
연관관계 메서드에 대해 질문드립니다.
@Entity @Table(name = "orders") @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "delivery_id") private Delivery delivery; //배송정보 private LocalDateTime orderDate; //주문시간 @Enumerated(EnumType.STRING) private OrderStatus status; //주문상태 [ORDER, CANCEL] //==연관관계 메서드==// public void setMember(Member member) { this.member = member; member.getOrders().add(this); // Member 엔티티 부분 : private List<Order> orders = new ArrayList<>(); } public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); // OrderItem 엔티티 부분 : private Order order; orderItem.setOrder(this); } public void setDelivery(Delivery delivery) { this.delivery = delivery; // Delibery 엔티티 부분 : private Order order; delivery.setOrder(this); } member.getOrders().add(this) -> addOrderItem과 setDelivery에서는 setOrder(this)로 연관관계를 설정해줬는데, 왜 setMember 메소드에서만 getOrders().add(this)로 연관관계를 설정한 것인가요? Member 엔티티의 orders메소드가 List라 그런 것인가요? setMember에서는 같은 List임에도 불구하고 this.member = member라고 했는데, 왜 여기서는 add(orderItem)으로 연관관계를 설정한 것인가요? orderItems가 List라서 그런 것인가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
.
.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 연관관계 질문
Table 명은 ORDERS로 했고 객체는 Order라고 이름을 지었습니다. mappedBy는 테이블명인 ORDERS로 해야하는게 맞지 않나요?