jpashop : 컬럭션 조회 v3.1 (dto응답, paging, batchsize)

This commit is contained in:
kim
2021-01-27 19:33:03 +09:00
parent ddbd688d8c
commit 990121a658
5 changed files with 26 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ import com.example.jpashop.repository.OrderRepository;
import com.example.jpashop.repository.OrderSearch;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@@ -44,4 +45,14 @@ public class OrderApiController {
.map(OrderDto::new)
.collect(Collectors.toList());
}
@GetMapping("/api/v3.1/orders")
public List<OrderDto> ordersV3_page(
@RequestParam(value = "offset", defaultValue = "0") int offset,
@RequestParam(value = "limit", defaultValue = "100") int limit) {
List<Order> orders = orderRepository.findAllWithMemberDelivery(offset, limit);
return orders.stream()
.map(OrderDto::new)
.collect(Collectors.toList());
}
}

View File

@@ -4,6 +4,7 @@ import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.BatchSize;
import javax.persistence.*;
import java.time.LocalDateTime;
@@ -24,6 +25,7 @@ public class Order {
@JoinColumn(name = "member_id")
private Member member;
// @BatchSize(size = 1000)
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)
private List<OrderItem> orderItems = new ArrayList<>();

View File

@@ -6,9 +6,11 @@ import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.BatchSize;
import javax.persistence.*;
//@BatchSize(size = 100)
@Entity
@Getter @Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)

View File

@@ -96,6 +96,16 @@ public class OrderRepository {
.getResultList();
}
public List<Order> findAllWithMemberDelivery(int offset, int limit) {
return em.createQuery(
"select o from Order o" +
" join fetch o.member m" +
" join fetch o.delivery", Order.class)
.setFirstResult(offset)
.setMaxResults(limit)
.getResultList();
}
public List<Order> findAllWithMemberDelivery() {
return em.createQuery(
"select o from Order o" +

View File

@@ -12,6 +12,7 @@ spring:
hibernate:
# show_sql: true
format_sql: true
default_batch_fecth_size: 100
logging:
level: