TIL

220616 TIL

Vince_rf 2022. 6. 17. 20:03

# @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