@QueryProjection - 상품 조회시 DTO 객체로 결곽밧을 받는 방법 - Item 객체로 값을 받은 후 DTO 클래스로 변환하는 과정 없이 바로 DTO객체를 뽑아낼수 있다. 1) DTO 생성 package com.shop.dto; import com.querydsl.core.annotations.QueryProjection; import lombok.Getter; import lombok.Setter; @Getter @Setter public class MainItemDto { private Long id; private String itemNm; private String itemDetail; private String imgUrl; private Integer price; @QueryPro..
분류 전체보기
상품 관리 화면에서는 상품을 조회하는 조건을 설정 후 페이징 기능을 통해 일정 개수의 상품만 불러오게 구현 - 조회조건) 1) 상품 등록일 2) 상푸 판매 상태 3) 상품명 또는 상품 등록자 아이디 이렇게 조회 조건이 복잡한 화면은 Querydsl을 이용해 조건에 맞는 쿼리를 동적으로 쉽게 생성하게 한다. 1. 컴파일 진행후 소스파일로 인식 2) DTO 생성 package com.shop.dto; import com.shop.constant.ItemSellStatus; import lombok.Getter; import lombok.Setter; @Getter @Setter public class ItemSearchDto { // 현재시간과 상품 등록일 비교해서 상품 데이터를 조회 private Stri..
ItemController.java @GetMapping(value = "/admin/item/{itemId}") public String itemDtl(@PathVariable("itemId") Long itemId, Model model){ try{ ItemFormDto itemFormDto = itemService.getItemDtl(itemId); model.addAttribute("itemFormDto", itemFormDto); } catch (EntityNotFoundException e){ model.addAttribute("errorMessage", "존재하지 않는 상품 입니다."); model.addAttribute("itemFormDto", new ItemFormDto()); } re..
ItemController.java @GetMapping(value = "/item/{itemId}") public String itemDtl(Model model, @PathVariable("itemId") Long itemId){ ItemFormDto itemFormDto = itemService.getItemDtl(itemId); model.addAttribute("item", itemFormDto); return "item/itemDtl"; } ItemService.java - @Transactional(readOnly = true) 설정. JPA가 더티체킹(변경감지)을 수행하지 않아서 성능을 향상 - itemImgRepository를 이용하여 해당상품 이미지 조회, 등록순가져오기 위해 아이디 오..
사전참고 : https://kururu.tistory.com/276 엔티티 관계도 / 엔티티 클래스 다이어그램 kururu.tistory.com 1) 화면 전달용 DTO 엔티티 과정중 엔티티에서 DTO 객체로 바꿔주는 작업이 변수가 많을수록 상당한 시간이 걸리므로 modelMapper 라이브러리를 사용 pom.xml org.modelmapper modelmapper 3.0.0 코드는 아래와 같음. - 베이스엔티티와 베이스타입엔티티는 공통 1) 상품등록 페이지 - form 태그 : method 설정, enctype 설정 - 이미지 파일 name 설정 itemForm.html 상품 등록 판매중 품절 상품명 Incorrect data 가격 Incorrect data 재고 Incorrect data 상품 상세 ..