
주문 이력 조회하기 @GetMapping(value = {"/orders", "/orders/{page}"}) public String orderHist(@PathVariable("page") Optional page, Principal principal, Model model){ Pageable pageable = PageRequest.of(page.isPresent() ? page.get() : 0, 5); Page orderHistDtoList = orderService.getOrderList(principal.getName(), pageable); model.addAttribute("orders", orderHistDtoList); model.addAttribute("page", pageable...

주문 기능 구현 ItemService @Transactional(readOnly = true) public Page getMainItemPage(ItemSearchDto itemSearchDto, Pageable pageable){ return itemRepository.getMainItemPage(itemSearchDto, pageable); } ItemRepositoryCustom public interface ItemRepositoryCustom { Page getAdminItemPage(ItemSearchDto itemSearchDto, Pageable pageable); Page getMainItemPage(ItemSearchDto itemSearchDto, Pageable pageable); ..
상세페이지는 Item 하나만 보여주면 되는 것이니까 여러개 들고 올 필요 없이 ItemService @Transactional(readOnly = true) public ItemFormDto getItemDtl(Long itemId){ List itemImgList = itemImgRepository.findByItemIdOrderByIdAsc(itemId); // DB에서 데이터를 가지고 옵니다. List itemImgDtoList = new ArrayList(); for (ItemImg itemImg : itemImgList) { ItemImgDto itemImgDto = ItemImgDto.of(itemImg); itemImgDtoList.add(itemImgDto); } Item item = it..
메인 페이지 만들기 ItemController 기존에는 메인으로만 돌아가는 역할을 했다면, 지금은 무언가를 연결해서 보여주는 로직으로 변모 @Controller @RequiredArgsConstructor public class MainController { private final ItemService itemService; @GetMapping(value = "/") public String main(ItemSearchDto itemSearchDto, Optional page, Model model) { Pageable pageable = PageRequest.of(page.isPresent() ? page.get() : 0, 5); if (itemSearchDto.getSearchQuery() ==..
.orElseThrow는 누구의 메서드인가? 예를 들면 코드에서 Item item = itemRepository.findById(orderDto.getItemId()) .orElseThrow(EntityNotFoundException::new); 이렇게 나와있다고 하면, 앞에서부터 itemRepository.findById(orderDto.getItemId()) 여기에 .을 찍으면 어떤 메서드가 나온다. 그리고 나서 .을 또 찍는 것이기 때문에 이 메서드의 리턴과 관련이 있다. 즉 findById의 리턴과 관련이 있다. findById는 일단 나는 id를 넘기는 것이고, 메서드는 item을 찾아준다. 즉 findItemById인 셈이다. 그런데 범용적으로 jpa가 제공하는 메서드를 쓰기 위해 형식에 맞춰..

https://school.programmers.co.kr/learn/courses/30/lessons/181927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요. 제한 사항 입출력 예 입출력 예 설명 아이디어 크지 않다는 게 같다는 것도 포함이다. 초기 코드 class Solution { public..
ItemController @GetMapping(value = {"/admin/items", "/admin/items/{page}"}) public String itemManage(ItemSearchDto itemSearchDto, @PathVariable("page") Optional page, Model model){ Pageable pageable = PageRequest.of(page.isPresent() ? page.get() : 0, 5); Page items = itemService.getAdminItemPage(itemSearchDto, pageable); model.addAttribute("items", items); model.addAttribute("itemSearchDto", ite..

ItemRepositoryCustom 이 부분인데 //리포지토리 특이한 상속!!! -- 궁금... // 형제쪽에 드러나 있는 애가 있고 숨겨진 애가 있다. // 형제끼리는 원래 형변환이 되지 않는다. (Impl이라서 가능) @Transactional(readOnly = true) public Page getAdminItemPage(ItemSearchDto itemSearchDto, Pageable pageable) { return itemRepository.getAdminItemPage(itemSearchDto, pageable); } // 원래 itemRepository.getAdminItemPage는 죽어야 하는데, 다른 자식이 구현하고 있으므로 사용 가능. // 스프링이 해주는 특이한 형태. /* ..