Entity를 DTO로 변환
@RestController
@RequiredArgsConstructor
public class OrderSimpleApiController {
private final OrderRepository orderRepository;
@GetMapping("/api/v2/simple-orders")
public List<SimpleOrderDto> orderV2() {
List<Order> orders = orderRepository.findAllByString(new OrderSearch());
return orders.stream().map(SimpleOrderDto::new).collect(Collectors.toList());
}
@Data
static class SimpleOrderDto {
private Long orderId;
private String name;
private LocalDateTime orderDate;
private OrderStatus orderStatus;
private Address address;
// DTO가 Entity에 의존하는 것은 문제가 되지 않는다.
public SimpleOrderDto(Order order) {
orderId = order.getId();
// lazy
name = order.getMember().getName();
orderDate = order.getOrderDate();
orderStatus = order.getStatus();
// lazy
address = order.getDelivery().getAddress();
}
}
}

fetch join 최적화

Last updated