마이페이지에서 사용자가 지금까지 좋아요를 누른 힐링 메시지를 리스트 형식으로 조회하는 API이다.
게시글의 모든 내용을 보여주지 않고,
리스트 형식의 반환이다 보니, 썸네일 형식의 리스트로 반환한다.
XML에서 SQL 구현과정에서 조금 복잡했지만,
한번에 성공했다.
DB 구조는 다음과 같다.

다음은 Xml의 SQL 코드이다.
<!-- 내가 좋아요 누른 힐링 메시지 리스트 조회 -->
<select id="getMyLikeMessageList" resultType="website.server.Domain.HealingProgram.HealingService.HealingMessageSharing.DTO.Response.HealingMessageThumbNailResponse">
SELECT
hm.messageId,
hm.title,
m.nickname,
hm.createdDate
FROM
healing_message hm
JOIN
member m
ON
hm.userNumber = m.userNumber
JOIN
healing_message_like hml
ON
hm.messageId = hml.messageId
WHERE
WHERE
hml.userNumber =#{userNumber}
</select>
/**
* 좋아요 누른 힐링 메시지 리스트 조회 API
* @param request 사용자 요청
* @return 좋아요 누른 힐링 메시지 리스트 반환
*/
@Operation(summary = " 좋아요 누른 힐링 메시지 리스트 조회 API ", description = "")
@GetMapping("/like/list")
public ResponseEntity<List<HealingMessageThumbNailResponse>> getMyLikeMessageList(HttpServletRequest request){
/* 좋아요 누른 힐링 메시지 리스트 반환 */
return ResponseEntity.ok(healingMessageService.getMyLikeMessageList(request));
}
JOIN 과 ON을 사용해서 userNumber로 각 테이블의 연관관계를 표현한 후 ,매개 변수로 받은 userNumber로 조건을 걸어 출력하였다.
/**
* 좋아요 누른 힐링 메시지 리스트 조회
* @param request 사용자 요청
* @return 내가 좋아요 누른 힐링 메시지 리스트
*/
List<HealingMessageThumbNailResponse> getMyLikeMessageList(HttpServletRequest request);
/**
* 좋아요 누른 힐링 메시지 리스트 조회 메서드
* @param request 사용자 요청
* @return 좋아요 누른 힐링 메시지 리스트 조회
*/
@Override
public List<HealingMessageThumbNailResponse> getMyLikeMessageList(HttpServletRequest request) {
/* 사용자 고유 번호 조회 */
Long userNumber = jwtService.extractUserNumberFromRequest(request);
/* 좋아요 누른 힐링 메시지 리스트 반환 */
return healingMessageMapper.getMyLikeMessageList(userNumber);
}
/**
* 좋아요 누른 힐링 메시지 리스트 조회
* @param userNumber 사용자 고유 번호
* @return 좋아요 누른 힐링 메시지 리스트
*/
List<HealingMessageThumbNailResponse> getMyLikeMessageList(Long userNumber);
<!-- 내가 좋아요 누른 힐링 메시지 리스트 조회 -->
<select id="getMyLikeMessageList" resultType="website.server.Domain.HealingProgram.HealingService.HealingMessageSharing.DTO.Response.HealingMessageThumbNailResponse">
SELECT
hm.messageId,
hm.title,
m.nickname,
hm.createdDate
FROM
healing_message hm
JOIN
member m
ON
hm.userNumber = m.userNumber
JOIN
healing_message_like hml
ON
hm.messageId = hml.messageId
WHERE
WHERE
hml.userNumber =#{userNumber}
</select>
healing message like 테이블에서 좋아요를 누른 사용자(현재 사용자)로 해당 테이블의 데이터를 가져온다.
그리고 healingmessage 테이블과 연관된 member 테이블을 사용해 ,
필요한 4가지의 정보를 모두 가져와서 DTO에 매핑한다.
다음은,
그냥 힐링 메시지 리스트 조회 결과이다.

반면,
내가 좋아요 누른 힐링 메시지 리스트 조회
