이 코드에서 userRepository.save(user); 이 아주 중요하다.
처음에 나는 userRepository.save(user); 를 안써서 분명 수정을 하고 업데이트 버튼을 누르고 response를 반환하면 제대로 나오는데 데이터베이스에서 update가 안되는 것이였다.
@PutMapping("/user/update")
public void updateUser(@AuthenticationPrincipal UserDetailsImpl userDetails, @RequestBody UserUpdateDto userUpdateDto) throws SQLException{
User user = (User) userDetails.getUser();
userService.updateUser(user, userUpdateDto);
}
@Transactional
public User updateUser(User user , UserUpdateDto userUpdateDto)throws SQLException {
user.updateUser(userUpdateDto);
userRepository.save(user);
return user;
}
TIL을 많이 쓴 순서대로 메인페이지에서 보여주는 기능이다,
@JsonIgnore
@OneToMany(mappedBy = "user")
private List<Til> til_list;
public List<UserTilCountDto> getAllUser(){
List<User> user_list= userRepository.findAll(); // 모든 user 를 리스트에 담음
int til_count;
List<UserTilCountDto> CountTilList=new ArrayList<>();
for(User user : user_list) { //모든 user 조회
// user의 til갯수 가져오기
String username=user.getUsername();
til_count=TilCount(user);
UserTilCountDto userTilCountDto=new UserTilCountDto();
userTilCountDto.setTil_count(til_count);
userTilCountDto.setUsername(username);
CountTilList.add(userTilCountDto);
}
return CountTilList;
}
public int TilCount(User user){
List<Til> user_tils=user.getTil_list();// 모든 user 를 리스트에 담음
return user_tils.size();
}