토이프로젝트 - 뉴스피드
23.07.05
J1-H00N
2023. 7. 5. 20:35
public void like(LikeRequestDto requestDto) {
User user = userRepository.findById(requestDto.getUser_id()).orElseThrow(() ->
new IllegalArgumentException("로그인 시 이용 가능합니다.")
);
Feed feed = feedRepository.findById(requestDto.getFeed_id()).orElseThrow(() ->
new IllegalArgumentException("없는 피드입니다.")
);
if (likeRepository.findByUserAndFeed(user, feed).isPresent()) {
throw new RuntimeException("이미 좋아요 한 피드입니다.");
}
Like like = new Like(user, feed);
likeRepository.save(like);
customFeedRepository.updateCount(feed,true);
}
public void cancel(LikeRequestDto requestDto) {
User user = userRepository.findById(requestDto.getUser_id()).orElseThrow(() ->
new IllegalArgumentException("로그인 시 이용 가능합니다.")
);
Feed feed = feedRepository.findById(requestDto.getFeed_id()).orElseThrow(() ->
new IllegalArgumentException("없는 피드입니다.")
);
Like like = likeRepository.findByUserAndFeed(user,feed).orElseThrow(() ->
new IllegalArgumentException("해당하는 좋아요를 찾을 수 없습니다.")
);
likeRepository.delete(like);
customFeedRepository.updateCount(feed, false);
}
이와 같이 새로운 레퍼지토리를 만들어 해당 메서드를 구현해보려고 했으나 queryfactory등 처음보는 라이브러리를 이용하거나 repositoryImpl을 만들어 직접 구현해야 하는 등 그 방법이 난해하다고 느껴 좀 더 익숙한 방법을 찾아봤다.
결국 기존에 알고 있던 방법들로 좋아요 기능을 구현하는 블로그를 찾아 그 내용을 구현해보려고 한다.
참조한 블로그 : https://hose.tistory.com/18
스프링부트 게시판 API 만들기 - 13 게시물 좋아요 기능 만들기
안녕하세요 이번 시간에는 게시물 좋아요 기능을 만들어 보도록 하겠습니다. 수정할 파일 : PostController, PostService, PostEntity, UserEntity 생성할 파일 : PostLikeEntity, PostLikeRepository - PostController @PostMappin
hose.tistory.com
java.sql.sqlsyntaxerrorexception: you have an error in your sql syntax; check the manual that corresponds to your mysql server version for the right syntax to use near 'like (
라는 에러가 발생했는데, sql예약어 like를 사용해서 생긴 문제였다. entity명을 예약어로 쓰지 않게 조심했어야 했다.