게시글 삭제할때 삭제문구만 화면에 나타내고 싶었는데 자꾸 안에 내용물도 다같이 나오는 것이다ㅜㅜ
캡쳐는 다른 내용이지만 저 내용에서 값이 전부 'null'로 나오고 "msg"값만 "삭제 성공" 이라고 떴다.
마음에 안드는 것......
어떻게해야 코드를 고칠 수 있는지 생각이 안났다ㅜㅜ
[Service.java]
@Transactional
public String deleteAll(Long id, String password) {
Post post = postRepository.findById(id).orElseThrow(
() -> new IllegalArgumentException("게시글이 존재하지 않습니다.")
);
if (post.getPassword().equals(password)) {
postRepository.deleteById(id);
return "삭제 성공";
} else {
return "비밀번호가 다릅니다.";
}
public String deleteAll(Long id, String password) {
Post post = postRepository.findById(id).orElseThrow(
() -> new IllegalArgumentException("게시글이 존재하지 않습니다.")
);
if (post.getPassword().equals(password)) {
postRepository.deleteById(id);
return "삭제 성공";
} else {
return "비밀번호가 다릅니다.";
}
[Controll.java]
@DeleteMapping("/post/{id}")
public String deleteAll(@PathVariable Long id, @RequestBody String password) {
return postService.deleteAll(id,password);
}
}
public String deleteAll(@PathVariable Long id, @RequestBody String password) {
return postService.deleteAll(id,password);
}
}
정말 간단하게 그냥 return 값을 다 지우고 String으로 받아주면 되는 것이었음;;;
나는 왜 복잡하고 어렵게 항상 생각해서 문제일까ㅋㅋㅋㅋㅋ
아유 게비스콘!~ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
[수정 시]
[Service.java]
@Transactional
public PostResponseDto update(Long id, PostRequestDto postRequestDto) {
Post post = postRepository.findById(id).orElseThrow(
() -> new IllegalArgumentException("아이디가 존재하지 않습니다.")
);
PostResponseDto postResponseDto = new PostResponseDto(post);
if (!post.getPassword().equals(postRequestDto.getPassword())) {
postResponseDto.setMsg("업데이트 실패");
return postResponseDto;
}else {
post.update(postRequestDto);
postResponseDto = new PostResponseDto(post);// 위에 post는 업데이트가 안되었기 때문에
postResponseDto.setMsg("업데이트 성공"); // 74,75번줄 순서 중요!!
return postResponseDto;
}
}
public PostResponseDto update(Long id, PostRequestDto postRequestDto) {
Post post = postRepository.findById(id).orElseThrow(
() -> new IllegalArgumentException("아이디가 존재하지 않습니다.")
);
PostResponseDto postResponseDto = new PostResponseDto(post);
if (!post.getPassword().equals(postRequestDto.getPassword())) {
postResponseDto.setMsg("업데이트 실패");
return postResponseDto;
}else {
post.update(postRequestDto);
postResponseDto = new PostResponseDto(post);// 위에 post는 업데이트가 안되었기 때문에
postResponseDto.setMsg("업데이트 성공"); // 74,75번줄 순서 중요!!
return postResponseDto;
}
}
[Controll.java]
@PutMapping("/put/{id}")
public PostResponseDto updatePost(@PathVariable Long id, @RequestBody PostRequestDto postRequestDto) { //@RequestBody : http의 요청이 그대로 적힘
return postService.update(id,postRequestDto);
}
public PostResponseDto updatePost(@PathVariable Long id, @RequestBody PostRequestDto postRequestDto) { //@RequestBody : http의 요청이 그대로 적힘
return postService.update(id,postRequestDto);
}
여기서 중요한 것은 postResponseDto = new PostResponseDto(post); 와
postResponseDto.setMsg("업데이트 성공"); 부분이 순서가 달라지만 업데이트 성공 메세지가 'Null'로 뜬다는 것,,
이미 postResponseDto을 메세지로 넣어주기때문에 달라질 수 있으므로 순서에 유의할 것!!!
'코딩 공부' 카테고리의 다른 글
git bash_오류해결_![rejected] main->main(fetch first ) (1) | 2023.04.25 |
---|---|
import 오류 (persistence) (0) | 2023.04.19 |
간단한 게시물 작성,조회시 자동날짜 나오게하기 (0) | 2023.04.17 |
한주회고,JVM에 대하여 (0) | 2023.04.10 |
Java_숫자 야구 게임 (0) | 2023.04.06 |