1. MainItemDto

2. @QueryProjection

3. 사용자 정의 인터페이스 리포지토리 생성



// MainItemDto 객체를 반환
// 멤버변수 초기화는 조회된 결과값에서 MainItemDto 객체 생성자를 통해 지정
// 즉, db 조회 결과는 itemImg-item 조인된 결과가 반환되지만 그 중 일부만 사용
.select(
new QMainItemDto(
item.id,
item.itemNm,
item.itemDetail,
itemImg.imgUrl,
item.price)
)
// itemImg 테이블의 item 필드가 참조하는 item 테이블 조인
.join(itemImg.item, item)
// 5개의 이미지중에서 대표사진만을 조회
.where(itemImg.repimgYn.eq("Y"))

4. Main Controller

5. Main Page


6. 상품 이미지 파일 불러오기 동작 원리



① src = "images/item/파일명" 으로 이미지 파일 요청
② WebConfigurer 에 지정된 핸들러대로 uploadPath 를 기준으로 요청 처리
③ "file:///Users/codren/study/item/상품명" 을 수행하여 일치하는 파일 반환