엔티티 직접노출
컬렉션인 일대다 관계를 조회하고 최적화 하는 방법을 알아보자
@GetMapping("/api/v1/orders")
public List<Order> ordersV1(){
List<Order> all = orderRepository.findAllByString(new orderSearch())
//결과 값을 바로 뿌리면 지연로딩 필드들이 null이되게 된다.
//그래서 지연로딩필드를 호출해서 값을 로딩시켜 주어야 한다.
for(Order order : all){
//값을 강제 초기화 , 지연로딩 필드를 건드려서 로딩
order.getMember().getName();
order.getDelivery().getAddress();
List<orderItem> orderItems = order.getOrderItems();
for(OrderItem orderItem : orderItems){
orderItem.getItem().getName();
}
//OrderItem도 지연로딩 그 안에 Item도 지연로딩이라 전부 불러와 주기
}
//람다식
orderItems.stream().forEach(o -> o.getItem().getName())
//엔티티를 바로 노출하면 안되고 , DTO로 감싸야 하는데
컬렉션을 DTO로 모두 감싸는건 어렵다.
}
'JPA' 카테고리의 다른 글
| 2월 27일 JPA 주문조회 V3 (0) | 2023.02.27 |
|---|---|
| 2월 27일 JPA 주문조회 V2 (0) | 2023.02.27 |
| 2월 24일 JPA 간단한 주문조회 V4 (0) | 2023.02.24 |
| 2월 23일 JPA 간단한 주문조회 V3 (0) | 2023.02.23 |
| 2월 23일 JPA 간단한 주문조회 v2 (0) | 2023.02.23 |