인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

주문, 주문상품 엔티티 개발

OrderItem 생성메서드

작성

·

593

2

Order 생성 메서드의 매개변수 값으로 Member, Delivery,OrderItem list가 들어갔습니다.

OrderItem 생성메서드에는 매개변수로 Item, orderPrice,count가 들어갔는데 OrderItem 클래스에 Order도 변수로 가지므로 생성메서드 매개변수로 Order도 들어가야 하는것이 아닌가요??

 

감사합니다.

답변 2

3

안녕하세요, 이상민 님! 공식 서포터즈 codesweaver 입니다.

말씀하신것처럼 Order와 OrderItem 객체 상호간에 참조하도록 설정하는 것도 괜찮습니다.

다만 일반적으로 Order를 기준으로 OrderItem을 찾는 경우가 많고, OrderItem 을 기준으로 Order를 찾는 경우는 드뭅니다.(데이터베이스 쿼리를 작성할 때를 생각해보시면 Order 를 기준으로 OrderItem을 조인 하는 경우가 압도적으로 많다는걸 확인하실 수 있습니다. 물론 역으로 Item에서 OrderItem, 그리고 Order 까지 조회해야하는 경우가 아예 없지는 않습니다 :) )

강의에서는 Order에서 OrderItem을 참조하도록 설정하여 예제를 간단하게 만들기 위한 목적도 있습니다.

감사합니다.

0

답변 감사합니다.

  1. 답변자분께서 제가 Order와 OrderItem 객체 상호간에 참조하도록 설정하는 것도 괜찮다고 하셨는데 클래스 변수에 서로가 있으므로 이미 서로 참조하는것이 아닌가요?

  2. 혹시 연관관계 메소드를 Order 클래스에 넣은 이유도 Order에서 Member나 OrderItem 클래스를 찾는 경우가 많기 때문에 그런건가요? Member 클래스에 연관관계 메소드를 넣지 않구요!

  3. 그리고 비즈니스 로직(주문 취소와 같은 로직)을 비즈니스 클래스(비즈니스 계층)에 따라 빼서 구현하지 않고 Order 클래스 안에 구현한 이유가 무엇인가요? 강의에서 설명해 주셨는데 와닿지가 않아서요 ㅠㅠ.

 

감사합니다.

 

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기