[MongoDB / SpringBoot] 데이터 가져오기(Read)

Glen(OH TaekJoo)·2023년 11월 20일
0

Study

목록 보기
45/53
post-thumbnail

관련포스팅 ↓

mongoDB 설정 / 데이터 넣기 (Create)

현재 위치→MongoDB 데이터 가져오기 (Read)

MongoDB 데이터 수정하기 (Update)

MongoDB 데이터 삭제하기 / DeleteMapping 사용해보기 (Delete)

저번에 DB 와 연결해서 넣었던 데이터를 가져오기위해 공부를 해보았다.

Controller

    @GetMapping("/readData")
    public List<Mongo> findAll(){
        return this.mongService.getList();
    }

데이터만 포스트맨 을 이용해 확인할것 이기 때문에 @RestController 에서 작업하였다.

Service

public List<Mongo> getList() {
        try {
            return mongoRepo.findAll();
        } catch (Exception e) {
            e.printStackTrace(); // 또는 로깅을 사용하여 예외 내용을 출력
            throw new RuntimeException("데이터를 가져오는 중에 오류가 발생했습니다.");
        }


    }

처음에 500에러로 데이터를 DB에 가져오기가 불가능하여 기존 작성했던 코드들에 TryCatch 를 추가하였다 (에러관련 해결내용은 아래.. )

PostMan

포스트맨에서 해당 맵핑된 url 을 찍었을 때 데이터가 리스트값으로 잘 나왔다.

에러가 났던 부분 / 해결

이전에 작업했던 데이터를 넣는 부분은 정상적으로 동작을 하였었다.
하지만 가져오기쪽에서 계속 500에러가 나와 확인해본 결과 도큐먼트 클래스에 생성자관련 어노테이션이 없어 발생한 오류였다.

  • 기존 Document class
@Data
@Getter
@Setter
@Document("1234")
public class Mongo {

    @Id
    private String id;

    private String text1;
    private String text2;



    public Mongo(String text1, String text2) {
        this.text1 = text1;
        this.text2 = text2;
    }

    public Mongo(String id, String text1, String text2){
        this.text1=text1;
        this.text2=text2;
        this.id=id;

    }
}
  • 수정된 Document class
@Data
@Getter
@Setter
@Document("1234")
@AllArgsConstructor
@NoArgsConstructor
public class Mongo {

    @Id
    private String id;

    private String text1;
    private String text2;


}

기존코드엔 생성자를 직접 작성하여 만들었는데, 이부분이 가져올때 오류가 된 것인지 아니면 가져오기 관련한 생성자가 없어서 오류가 난듯하다.

@AllArgsConstructor,@NoArgsConstructor 어노테이션을 추가하였다.

@NoArgsConstructor: 파라미터가 없는 기본생성자 생성
@AllArgsConstructor: 모든 필드를 파라미터로 받는 생성자 생성

두 어노테이션으로 필요한 생성자들을 자동추가하도록 수정하고 Read 를 테스트하니 데이터를 잘 가져올 수 있었다.

profile
병아리 개발자 의 우당탕탕 성장기

0개의 댓글