TIL(Today Ingwang Learned)

TIL)2022 - 12 - 10(Spring)

김코식 2022. 12. 11. 01:35


 

Spring

if(commentLikeRepository.findByComment(comment).isEmpty()){
    commentLikeRepository.save(new CommentLike(users,comment));
    return new ResponseMsgDto(HttpStatus.OK.value(),"좋아요 성공");
}else{
    commentLikeRepository.deleteByUsersIdAndCommentId(users.getId(), comment.getId());
    return new ResponseMsgDto(HttpStatus.OK.value(),"좋아요 취소");
}

isEmpty를 통해 repository에 데이터가 있는지 없는지 확인 가능!


void deleteByUsersIdAndCommentId(Long usersId,Long commentId);

쿼리문 작성시 void를 통해 반환값을 받지 않을 수 있다.


데이터베이스에서 save,delete를 할 때는 @Transactional 을 붙이지 않아도 실행이 됐고,

update를 할 때는 @Transactional 으 붙여줬어야됐는데 

delete를 할 때 jpa가 지원하는 delete 대신

deleteByUsersIdAndCommentId

를 사용했더니 값이 변경되지 않았고  @Transactional을 붙이고 나니 값이 변경되는 것을 확인했다

이유는 다음에 찾아보자..