본문 바로가기

Spring Boot/old

JPA로 쿼리작성 1 (삭제&리스트출력)

 

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