반응형
목차
상세 조회 시 복수값 추가 조회 😗
기존 상세조회 API에서 상세 조회 시 해시태그와 같은 복수값을 추가로 조회해야 되는 경우가 생겼다.
가져와야 되는 필드값은 2개밖에 안되므로 추가로 vo를 만들고 싶지 않아 아래처럼 수정했다.
Controller
기존에는 Controller에서 return으로 VO로만 받았던 걸 map으로 받도록 변경, VO결과와 tag리스트 결과를 map에 담아서 최종적으로 return
/**
* 상세
* @param
* @param
* @return
*/
@Operation(summary = "멤버 상세 조회", description = "멤버를 상세 조회한다.")
@Parameters({@Parameter(name = "mem_no", description = "회원 일련번호", required = true)})
@GetMapping("/{mem_no}")
public HashMap<String, Object> detail(
@PathVariable Long mem_no,
) throws Exception{
HashMap<String, Object> result = new HashMap<String, Object>();
MemberVO memberVO;
try {
// 회원 상세 목록
memberVO = memberService.selectmemberDetail(mem_no);
// 태그 목록
List<String> tagList = null;
tagList = memberService.selectTagList(mem_no);
result.put("memberVO", memberVO);
result.put("tagList", tagList);
}catch(Exception e) {
Exception.Error e = e.getError();
result.put("error_code", e.getError_code());
result.put("error_msg", e.getError_msg());
}
return result;
}
Service
// 회원 상세조회
public MemberVO selectMemberDetail(Long mem_no) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("mem_no", mem_no);
MemberVO memberVO = memberMapper.selectMemberDetail(paramMap);
return memberVO;
}
// 회원 태그 조회
/**
* 템플릿 필터값 상세 조회
* @param template_seq
* @return
* @throws ServiceException
*/
public List<String> selectTagList(Long mem_no) throws Exception{
return memberMapper.selectTagListDetail(mem_no);
}
mapper
// 회원 상세조회
public MemberVO selectMemberDetail(HashMap<String, Object> param);
// 회원 태그 목록 조회
public List<String> selectTagList(Long mem_no);
xml
<!-- 회원 필터 목록 조회 -->
<select id="selectTagList" resultType="map">
SELECT a.*
, c.tag_type
, c.tag_name
FROM member_tag_mapping a
LEFT OUTER JOIN member b ON a.mem_no = b.mem_no
LEFT OUTER JOIN tag c ON a.tag_no = c.tag_no
WHERE b.mem_no = #{mem_no}
</select>
<!-- 회원 상세 조회 -->
<select id="selectMemberDetail" parameterType="HashMap" resultType="MemberVO">
SELECT *
FROM member
WHERE mem_no = #{mem_no}
</select>
반응형
'IT > development' 카테고리의 다른 글
[springBoot] 유효성 검증(feat. @Valid, Validated) (0) | 2022.11.22 |
---|---|
[mybatis] mybatis parameter 여러개 전달 (0) | 2022.11.22 |
[JavaScript] Ajax 결과값 변수 저장 (0) | 2022.11.22 |
[JavaScript] submit control(feat. onsubmit) (0) | 2022.11.22 |
[spring Boot] Request method 'POST' not supported(feat. thymeleaf) (0) | 2022.11.22 |