@RestController
@RequiredArgsConstructor
public class OrderSimpleApiController {
private final OrderRepository orderRepository;
@GetMapping("/api/v4/simple-orders")
public List<OrderSimpleQueryDto> ordersV4() {
return orderRepository.findOrderDtos();
}
}
@Repository
@RequiredArgsConstructor
public class OrderSimpleQueryRepository {
public List<OrderSimpleQueryDto> findOrderDtos() {
return em.createQuery(
// 원하는 필드만 DTO에 정의해서 가져올 수 있다.
"select new jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto(o.id, m.name, o.status, o.orderDate, d.address)"
+ " from Order o"
+ " join o.member m"
+ " join o.delivery d", OrderSimpleQueryDto.class)
.getResultList();
}
}