해결된 질문
작성
·
412
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
이게 주문아이템이 한번에 여러 개 일 수 있으니까,
public Long order(Long memberId, List<OrderItemDto> orderItemsDto){
List<OrderItem> orderItems = new ArrayList<>();
for( OrderItemDto orderItemDto : orderItemsDto){
Item item = itemRepository.findOne(orderItemDto.itemId);
int orderPrice = orderItemDto.price;
int count = orderItemDto.count;
OrderItem orderItem = OrderItem.createOrderItem(item, orderPrice, count);
orderItems.push(orderItem);
}
}
이런 식으로 하는 것도 괜찮죠?
제가 아직 Dto를 잘 몰라서
Data to Object 인 거 같은데 그러면
OrderItem을 만들어서 Dto에 넣어야 하나 생각했더니 그건 왠지 아닌 것 같고.. 컨트롤러 단계에서 엔티티를 꺼내서 써야 하게 될테니..
그냥 Dto를 데이터를 모아 사용하기 편한 오브젝트로 만들어주는 그런 느낌으로..
여튼 저런 식으로 하면 잘한건가요?
답변 1
1
안녕하세요. 궁금이님, 공식 서포터즈 코즈위버입니다.
주문을 생성하는 코드를 작성하신것 같아요. 작성하신것처럼 DTO(form) 형태로 사용자의 요청을 받아, 이를 기반으로 엔터티를 생성하는 방식은 일반적인 처리 방법입니다.
코드에서는 엔터티 속성에 .(점) 연산자로 접근하고 있으나 getter 로 접근하는 방법이 적절하며, order() 메서드의 반환타입이 Long 이나 return 구문이 없는 등의 문제도 해결하시면 좋을것 같아요
감사합니다.
아 감사합니다!