코딩과 결혼합니다

230628 - Spring 프로젝트 오류 본문

2세/Spring

230628 - Spring 프로젝트 오류

코딩러버 2023. 6. 29. 22:19
728x90

전체 조회가 아닌 선택한 post만 조회하거나, 삭제, 그리고 수정을 하려면 id값을 확인하는 과정이 필요하다.

 

id값을 url 맨 뒤쪽에 넣어주고 

@DeleteMapping("/post/{id}")
Db측 (entity)의 id 와 경로에서의 아이디가 맞는지 확인하는 과정이 필요하다.
그런데 자꾸 오류가 뜨면서 나는 url에 id를 잘 입력했는데 비밀번호가 맞지 않다는 것이다.
알고 보니 post.setPassword(resultSet.getString("password")); 이 부분을 넣어주지 않아서 애초에 비교도 못하고 null값만 들어가고 있었다.
   private Post findById(Long id) {
        // DB 조회
        String sql = "SELECT * FROM post WHERE id = ?";

        return jdbcTemplate.query(sql, resultSet -> {
            if(resultSet.next()) {
                Post post = new Post();  // 기본생성자 생성
                post.setPassword(resultSet.getString("password"));
                post.setTitle(resultSet.getString("title"));
                post.setWriter(resultSet.getString("writer"));
                post.setContents(resultSet.getString("contents"));
                post.setCreatedAt(resultSet.getTimestamp("createdAt").toLocalDateTime());
                return post;
            } else {
                return null;
            }
        }, id);
    }

 

다음은 또 알 수없는 오류들로 진행이 되지 않았는데 이유는 변수명을 content 와 contents 와 같이 엄청나게 유사하면서도 다르게 지어놔서 이 둘을 혼동해서 써서 제대로 작동하지 않았던 것이다. 코드가 많아 하나하나 확인은 어려워서 contents로 이름을 모두 통일해서 오류를 해결하였다.