본문 바로가기

JPA

2월 24일 JPA API개발 고급 , 주문조회 v1

엔티티 직접노출

 

컬렉션인 일대다 관계를 조회하고 최적화 하는 방법을 알아보자

 

@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