51 : JPA로 쿼리작성 (SpringbootApi)
MyBatis - mapper로 쿼리를 가지고 오는 방법 말고 jap를 사용하여 쿼리를 실행해보자. 이전까지 만들어왔던 SpringbootApi에 작성한다. BoardJpa boardjap 디렉토리 안에 board디렉토리 처럼 controller , model..
dwc04112.tistory.com
위 코드에서 다음과 같은 기능을 추가했습니다
Delete
- DELETE /boardjpa/{id} 구현
- DB에 데이터를 DELETE 시키지 말고, board 컬럼 중 isDel 을 "Y"로 업데이트
저번에 작성한 Board부분 코드와 매우 유사하다.
BoardJpaService
public ApiResponse<BoardDTO> updateIsDelBoard(int id, BoardDTO boardDTO) {
// 비밀번호 일치 확인
Board oriPass = boardRepository.getBoardById(id);
boolean isPwdMatch = oriPass.getPassword().equals(boardDTO.getPassword());
if (!isPwdMatch){
return new ApiResponse<>(false, "board password is not match, please check requested board password");
}
// 비밀번호 일치시 IsDel : Y 로 변경
Optional<Board> boardData = boardRepository.findBoardById(id);
boardData.ifPresent(selectedBoard ->{
selectedBoard.setIsDel("Y");
boardRepository.save(selectedBoard);
});
return new ApiResponse<>(true, "board id " + id + " is successfully deleted");
}
입력한 비밀번호 일치여부를 확인하기 위해 DB상의 비밀번호를 들고오는 코드를
boardRepository에 Board getBoardById(int id); 추가하였다.
비밀번호 일치시 람다식을 사용하여 IsDel을 Y로 변경하였다.
GetboardList
- jpa queryMethod를 수정하여 isDel이 "N"인 데이터row들만 나오도록 수정
boardRepository.findByIsDelEquals("N"); 코드를 사용하여 isDel값이 N인 글만 출력한다.
List<Board> findByIsDelEquals(String isDel); 여기서 isDel 은 "N"값을 가지고있다.
'Spring Boot > old' 카테고리의 다른 글
Spring 여러기능 추가 ~1007 (0) | 2021.10.03 |
---|