본문 바로가기
✨ Back-end/Spring-Boot

[Spring] 쇼핑몰 - 24 여러 쿼리 종합해 상품 정보 조회 <Map> 사용

by 환풍 2023. 3. 31.
728x90
반응형

Map을 사용해 메인 이미지에 나타낸 imgVO의 originFileName.

이전 까지 사용했던 상품 관리 상세조회이다. 쿼리를 두개 리턴시켜줘야하는데, 자료형 List에서는 그걸 할 수 가 없기 때문에, Map으로 바꿔서 리턴시켜줘야한다. 그래서 갈아엎고 다시 만들어보았다.


AdminController 컨트롤러

컨트롤러에서 먼저 조회된 쿼리 두개 모두 cateList , item 이라는 변수로 만들어준다.

cateList는 여러 줄로 조회된 데이터를 가지고 오므로 자료형이 List<> 로 채워지고,

상품 상세 정보 쿼리는 item으로 itemCode 의 문자열 데이터를 가져와 쿼리에서 ItemVO 정보를 조회한다.

 

자료형 Map은 Map(key, value) 로 채워질 수 있는데, key 값으로 String, value 값으로 Object가 들어왔다.

Object는 모든 자료형의 부모 클래스로 String이든 List 자료형이든 상속시켜줄 수 있기 때문에 들어올 수 있다.

만약 두 자료형이 String, List로 모두 같으면 똑같이 주면 된다.

item_manage.js

js파일로 들어오면서 result의 값을 가져올 수 있다. Map에서는 List로 접근할 때 ['item']과 같이 접근해주었다. 이렇게 카테고리가 생긴 것을 확인할 수 있다.

그리고 위 코드에서 selected 를 추가해주면, 선택한 상품의 카테고리를 알맞게 가지고 올 수 있다.

 

추가적으로 result['item].itemPrice와 같이 value 값을 조정해주면  이렇게 선택한 상품명의 모든 정보를 가져와줄 수 있다.

 

 

result['item'] 여기까지가 itemVO의 데이터를 가르키고,

imgList 한덩이 한덩이가 모두  imgVO이다. result['item'] .imgList[0]  -- imgVO 된다.

 

따라서 result에서 받아온 Map으로 접근해서, itemVO의 안에 imgVO에 있는 isMain 값이 Y 인것만 출력하게 된다.

 

 

 

 

728x90
반응형

댓글