DTO로 바꾼 api의 성능 문제도 해결해 보자.

repository

public List<Order> findAllWithMemberDelivery(OrderSearch orderSearch) {
	return em.createQuery("select o from Order o " +
			"join fetch o.member m " +
			"join fetch o.delivery d", Order.class
	).getResultList();
}
@GetMapping("/api/v3/simple-orders")
public List<SimpleOrderDTO> ordersV3() {
	return orderRepository.findAllWithMemberDelivery(new OrderSearch()).stream()
			.map(SimpleOrderDTO::new)
			.collect(Collectors.toList());
}

페치 조인에 대한 글

페치 조인 1 - 기본 , 페치 조인 2 - 한계

페치 조인으로 대부분의 문제를 해결할 수 있다.