JPA에서 DTO 직접 조회
@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();
}
}V3 vs V4
쿼리


재사용성
정리
쿼리 방식 선택 권장 순서
Last updated