🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

v6의 OrderQueryDto 생성자 호출 부분에서 에러가 발생하는데 이유를 잘몰겠어여

21.01.29 18:07 작성 조회수 362

0

안녕하세요  김영한 강사님

v6 로직을 작성하던중 에러가 발생하는데여  v6 로직중에
아래의 코드중 OrderQueryDto 생성자 호출  부분에서
에러가 발생하는데 원인이 무엇일까여? 

그리고  v6  최적화 로직은 전체적으로  쉽지 않은데  일단
v6 최적화 부분은 대충 의미를 파악한뒤  다음 강의로
넘어가도 될까여?

controller/OrderApiController.java

@GetMapping("/api/v6/orders")
public List<OrderFlatDto> ordersV6() {

List<OrderFlatDto> flats = orderQueryRepository.findAllByDto_flat();
return flats.stream()
.collect(groupingBy(o -> new OrderQueryDto(o.getOrderId(), o.getName(),
o.getOrderDate(), o.getOrderStatus(), o.getAddress()),
mapping(o -> new OrderItemQueryDto(o.getOrderId(),
o.getItemName(), o.getOrderPrice(), o.getCount()), toList())))
.entrySet()
.stream().map(e -> new OrderQueryDto(e.getKey().getOrderId(),
e.getKey().getName(),
e.getKey().getOrderDate(),
e.getKey().getOrderStatus(),
e.getKey().getAddress(),
e.getValue()))
.collect(toList());

}

OrderQueryDto.java

@Data
@EqualsAndHashCode(of = "orderId")
public class OrderQueryDto {
private Long orderId;
private String name;
private LocalDateTime orderDate; //주문시간
private OrderStatus orderStatus;
private Address address;
private List<OrderItemQueryDto> orderItems;

public OrderQueryDto(Long orderId, String name, LocalDateTime orderDate,
OrderStatus orderStatus, Address address) {

this.orderId = orderId;
this.name = name;
this.orderDate = orderDate;
this.orderStatus = orderStatus;
this.address = address;

}
}

답변 1

답변을 작성해보세요.

0

안녕하세요. terecal님

파라미터 숫자가 맞지 않습니다.

마지막에 List<OrderItemQueryDto> orderItems가 빠졌네요^^

public OrderQueryDto(Long orderId, String name, LocalDateTime orderDate, OrderStatus orderStatus, Address address, List<OrderItemQueryDto> orderItems) {
this.orderId = orderId;
this.name = name;
this.orderDate = orderDate;
this.orderStatus = orderStatus;
this.address = address;
this.orderItems = orderItems;
}

추가로 이 부분은 난이도가 좀 있으니 우선 이런게 있구나 정도 알아두시고, 향후 성능 최적화의 필요성이 느껴질 때 다시 참고하시면 됩니다.

감사합니다.

채널톡 아이콘