# @GetMapping("/api/board/{id}")
public ResponseEntity getBoard(@PathVariable Long id, @AuthenticationPrincipal UserDetailsImpl userDetails) {
System.out.println(userDetails.getNickname());
return ResponseEntity.ok().body(boardService.getBoard(id));
}
userdetails가 null로 계속 들어온다.
추가 : skip path list 관련 이슈. skip path list 에 와일드카드를 썼기 때문이다. 유저정보를 넘기고 싶다면, GetMapping API를 하나 더 파주는 방법을 쓰던지, 유저가 액티브인지를 판단하는 /api/users/me 이런식으로 유저 정보를 넘기는 API를 만드는 방법이 있다.
#
@PostMapping("/api/board/{id}/like")
public boolean clickLove (@PathVariable Long id, @AuthenticationPrincipal UserDetailsImpl userDetails){
return loveService.clickLove(id, userDetails);
}
얘가 자꾸 작동을 안 한다.
500에러가 뜨고
For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters
이런 에러가 뜨는데,
boardservice에서
@Transactional
@Modifying
@Query("update Board m set m.loveCount = m.loveCount+1 where m.id = :id")
int uplikeCount(@Param("id") Long id);
//해당 아이디의 카운터를 1 업,
@Transactional
@Modifying
@Query("update Board m set m.loveCount = m.loveCount-1 where m.id = :id")
int downlikeCount(@Param("id") Long id);
//해당 아이디의 카운터를 1 다운.,
이렇게 @Param을 넣어주니 작동한다
https://stackoverflow.com/questions/66398543/use-param-for-query-method-parameters-or-when-on-java-8-use-the-javac-flag-p
'TIL' 카테고리의 다른 글
220619 TIL (0) | 2022.06.19 |
---|---|
220620 WIL (0) | 2022.06.19 |
220615 TIL (0) | 2022.06.17 |
220614 TIL (0) | 2022.06.17 |
220616 미니프로젝트 트러블슈팅 TIL (0) | 2022.06.16 |